結晶の融点は,結晶のサイズによって変わります(「ギブス・トムソン効果」参照)。では,異なるサイズの 2 つの結晶を水の中に隣り合わせておいたらどうなるでしょう ? 小さいほうの結晶 A の融点は氷点下 0.3 度,大きいほうの結晶 B の融点は氷点下 0.1 度。もし,水の温度が氷点下 0.2 度であれば,小さい結晶 A は融解してさらに小さくなり,大きい結晶 B は成長してさらに大きくなります。結果,大きいほうの結晶だけが生き残ります。このように,多数の結晶が同じ環境の中にいるとき,小さな結晶が選択的に無くなって,大きな結晶がさらに大きくなっていく現象を,オストワルド熟成,もしくはオストワルド・ライプニングといいます。
本 java プログラムでは,多数の結晶を計算領域内に配置して,オストワルド熟成が生じる様子をフェーズフィールド法によって計算します。初期設定では結晶の数はひとつですが,最大 15 個まで数を増やすことが可能です。結晶の位置とサイズはランダムに選ばれ,リセットボタンを押すたびに変わります。様々な設定で計算を行ない,結晶の数やサイズ,そして温度場が変化する様子を,java プログラムで体験してください。