樹枝状析出

モデルを作る

溶液から基盤への析出の様子をシミュレーションするセルオートマトンモデルを考えよう。 析出する物質の原子は溶液中をブラウン運動しており、基盤またはすでに析出した分子に接触すると そこに吸着される。原子が次々とやってくれば、次々と吸着が進んで、基板上に析出原子による構造が作られるだろう。 ブラウン運動のしかたや吸着の条件を変化させることで、この析出の様子がどのように変わるかを 調べたい。

平面への吸着を調べればいいのだが、ここでは簡単のために二次元空間をブラウン運動してきた粒子が 直線上の基盤に吸着されるモデルを作ろう。 たとえば以下のような規則ではどうだろう
  1. 粒子は格子状の二次元空間を動きまわり、基盤またはすでに析出した粒子に接触すると停止する。
  2. 基盤は二次元格子の最下行にある。
  3. 粒子は、各ステップごとに決まった確率で、上下に最大一マス、左右に最大一マス進む。どこへ動くかは乱数 によって決める(ブラウン運動のシミュレーション)
  4. すでに析出した粒子のどの位置に接触したら停止するかは、シミュレーションの前に決めておく(物質の種類が 違えば吸着のしかたも違うだろうから、それを考慮する)
  5. 粒子は一個ずつ現れ、それが停止すると次の粒子が出現する(溶液の濃度が非常に薄い場合を想定している)
プログラム化の例はここをクリック

はじめに

準備

以下のURLから、deposition.tarというファイルをダウンロード。

http://www.cp.cmc.osaka-u.ac.jp/~kikuchi/kougi/simulation/deposition.tar

例によって、これを適当なディレクトリで展開すると、 実行プログラムと、入力データファイルのサンプルができる。

入力データファイル

入力データファイルは3行からなり、
1 0 0.3 0.3 12345
1 1 1 1 1 1 1
5000 10
のようなもの。
一行めは、ブラウン運動のしかたを制御するもので、各方向へ動く確率を表す。 ここでは上下方向と左右方向を別々に制御している。
この五つの数をa b c d eとすると、 aとbは上下方向の確率で、確率aで下へ、確率bで上へ進み、確率1-a-bでその高さに留まる。 当然、a+bは1より小さくなくてはならないが、そのチェックはしていない。
cとdは同様に左右方向の確率を表す。5番目は乱数の初期値を表す。
したがって
1 0 0 0 12345
なら、各ステップごとに真下へ1マスずつ進むことになる(決定論)。

二行めは、くっつきかたを制御する。 すでに吸着している粒子(基盤も含む)*に対して
1 # 2
3 * 4
5 6 7
のそれぞれの場所に粒子が来たときに吸着されるなら1、されないなら0に設定する。 ただし、真上の位置にきたときは必ず吸着される。
したがって
1 1 0 0 0 0 0
は上の三点でだけ吸着される