結晶成長シミュレーター 戻る
材料・凝固

結晶成長シミュレーター

DLA(拡散律速凝集)モデルで樹枝状結晶・雪の結晶を生成。粒子は捕捉時刻に応じた色で表示。フラクタル次元もリアルタイム推定。

パラメータ

粒子サイズ2
付着確率1.00
最大粒子数800
対称性
同時粒子数5
1
粒子数
フラクタル次元
0
クラスター半径
0
粒子/秒

結晶成長シミュレーターとは

🧑‍🎓
このシミュレーターで作られるモコモコした枝みたいな形、雪の結晶っぽいけど、どうやってできるんですか?
🎓
ざっくり言うと、ランダムに漂う粒子が、中心の“種”にぶつかるとくっつく、というルールで成長するんだ。このモデルをDLA(拡散律速凝集)って呼ぶよ。上の「粒子数」スライダーを増やしてみて。粒子が多ければ多いほど、複雑な枝が外側に伸びていくのがわかるよね。
🧑‍🎓
え、そうなんですか?色がついてるのは何を表してるんですか?
🎓
粒子がくっついた順番(時刻)を色分けしてるんだ。最初にくっついた内側は青で、後からくっついた外側ほど赤に近づく。これで成長の歴史が一目でわかる。例えば「付着確率」を下げると、粒子が跳ね返りやすくなるから、よりスカスカで細かい枝ができるよ。試してみて。
🧑‍🎓
画面に出てる「フラクタル次元」って何ですか?数字が変わってます。
🎓
この枝分かれ構造の“複雑さ”を表す数値だよ。理論的には約1.71になる。真ん中の「格子タイプ」を「六方晶」に変えてみて。雪の結晶に近い六角形の対称性が出てきて、フラクタル次元の値も少し変わるはずだ。実務では、この値で材料の表面積や電気伝導度を推定したりするんだ。

物理モデルと主要な数式

DLAモデルの核心は、ランダムウォーク(拡散)する粒子の運動です。粒子は格子点上をランダムに移動し、隣接サイトに既存のクラスター(集合体)が存在すると付着します。このプロセスは以下の確率過程で記述されます。

$$ P(\vec{r}, t+\Delta t) = \sum_{\vec{\delta}}\frac{1}{z}P(\vec{r}+\vec{\delta}, t) $$

ここで、$P(\vec{r}, t)$は位置$\vec{r}$、時刻$t$に粒子が存在する確率、$\vec{\delta}$は隣接格子点への変位ベクトル(四方または六方)、$z$は隣接サイト数(配位数)です。クラスター表面では$P=0$(吸収境界条件)とします。

成長したクラスターの構造を特徴づけるのがフラクタル次元 $D_f$ です。クラスターの質量(粒子数)$M$ と、その広がり(半径)$R$ の間にべき乗則が成り立ちます。

$$ M(R) \propto R^{D_f} $$

ここで、$M$はクラスター内の総粒子数、$R$は中心からの慣性半径などで定義される代表長さです。$D_f$が2に近いと緻密な円形、1.71程度だとスカスカな樹枝状構造であることを意味します。シミュレーターは成長過程でこの関係をリアルタイムにフィッティングし、$D_f$を推定しています。

実世界での応用

電解析出・めっき:電解液中の金属イオンが電極表面に拡散して析出する過程はDLAと類似しており、樹枝状の析出物(デンドライト)が発生することがあります。これはショートの原因となるため、プロセス制御の観点から研究されています。

雪の結晶の成長:過冷却水蒸気分子が氷晶核に拡散して付着する過程は、六方晶の対称性を考慮したDLAモデルで再現できます。シミュレーターの「六方晶」モードは、この自然現象を模倣したものです。

多孔質材料・コロイド凝集:微粒子が溶液中でランダムに動き、衝突して大きな集合体を形成するコロイド凝集は、DLAの3次元版としてモデル化されます。生成されるフラクタル構造は、触媒の表面積やフィルターの透過性に影響します。

血管新生・神経突起の分岐:生物の組織において、成長因子などの化学物質の拡散に律速されて血管や神経が枝分かれしながら成長するパターンは、DLAの考え方で理解が進められています。

よくある誤解と注意点

このシミュレーターを使い始めるとき、いくつか勘違いしやすいポイントがあるから、最初に押さえておこう。まず、「粒子数を増やせば増やすほど、現実の結晶に近くなる」と思いがちだけど、そう単純じゃない。確かに粒子数が多いほど構造は細かくなるけど、計算する格子のサイズが足りないと、クラスターが画面端にぶつかって成長が歪んでしまう。例えば、1000x1000の格子で10万粒子も生成すると、端効果が無視できなくなるんだ。まずは格子サイズを大きくしてから粒子数を増やす、という順番がコツだね。

次に、「付着確率」パラメータの解釈。これを下げると「跳ね返りが増える」と説明されるけど、これは粒子が「くっつくかどうかを確率的に決める」という抽象化されたモデルだってことを忘れちゃダメ。実在の現象、例えば電解析出で言えば、これは界面のエネルギー障壁や添加剤の影響に相当する。だから「0.1」に設定したからといって、現実の確率が10%というわけではなく、あくまで相対的な傾向を見るためのパラメータと理解しよう。

最後に、フラクタル次元の値の読み方。シミュレーション中に値が1.5から1.8の間で揺れるのを見て「計算がおかしいの?」と思うかもしれない。でも、これは正常だ。推定に使うデータ点(クラスターの半径と質量)が少ない成長初期は値が不安定で、粒子数が増えるほど理論値の約1.71に収束していく。したがって、ある程度成長が進んでから(例えば粒子数が5000を超えてから)の値を参考にしよう。

関連する工学分野

このDLAシミュレーションの考え方は、CAEの様々な分野で顔を出す。直接「結晶成長」と関係なくても、「何かが拡散して、表面で反応・付着する」というプロセスは非常に普遍的だからだ。

例えば、電池設計工学だ。リチウムイオン電池の充電時に、負極(アノード)にリチウム金属が析出する「リチウムデンドライト」は、DLA的な成長をする。これがセパレーターを突き破ると内部短絡を起こし、発火の原因になる。シミュレーターで「付着確率」を変えると構造がどう変わるかを見る感覚は、電解液の組成や添加剤を変えてデンドライト成長を抑制する研究に通じる。

もう一つは、材料表面工学やコーティング技術。スパッタリングやCVD(化学気相成長)で薄膜を形成するとき、基板表面を原子が拡散して集まり、島状の構造(アイランド)を作ってから膜になる。この初期成長段階の形態は、基板温度(粒子の拡散のしやすさに相当)や堆積率(粒子の供給率に相当)で大きく変わり、最終的な膜の密着性や機械的特性を左右する。2次元DLAは、このプロセスを理解するための最初のモデルとして役立つ。

さらに粉体工学や造粒プロセスでも関連が深い。微粒子が凝集して大きな粒(アグロメレート)を作る過程は、3次元でのランダムな衝突と付着としてモデル化できる。生成される凝集体のフラクタル次元は、溶解速度や圧縮成型時の挙動を推定する重要なパラメータになるんだ。

発展的な学習のために

このツールに興味を持ったら、次はもう一歩深く、数理的な背景を学んでみるといい。まずは「ランダムウォーク」と「拡散方程式」の関係を押さえよう。シミュレーターで一つ一つの粒子がランダムに歩いているのは、拡散方程式 $$ \frac{\partial c}{\partial t} = D \nabla^2 c $$ を粒子レベルで解いているのと同じことなんだ。ここで $c$ は濃度、$D$ は拡散係数だ。この視点を得ると、DLAが「拡散律速」と呼ばれる理由がはっきりする。

その上で、「フラクタル幾何学」の基礎を学ぶことを強くお勧めする。フラクタル次元 $D_f$ には、ボックスカウント法や相関関数法など、様々な計算法がある。このシミュレーターがどの方法(おそらく質量-半径法)を使っているかを推測し、自分で簡単なプログラムを書いて検算してみると、理解が劇的に深まる。例えば、シミュレーション結果のクラスター座標データを出力して、別のアルゴリズムで $D_f$ を計算してみるのは良い練習だ。

次のステップのトピックとしては、「異方性のある付着確率」を導入したモデルを調べてみよう。今のツールの「六方晶」モードは格子の形を変えただけだが、より現実の雪の結晶に近づけるには、結晶軸方向によって付着しやすさ(キネティック係数)を変える必要がある。あるいは、「粒子-クラスター凝集 (PCA)」や「クラスター-クラスター凝集 (CCA)」といった、DLAを発展させたモデルにも挑戦してみよう。これらは、コロイドやエアロゾルがどのように大きな塊を形成するかを理解するための強力なツールになるよ。