樹枝状析出
モデルを作る
溶液から基盤への析出の様子をシミュレーションするセルオートマトンモデルを考えよう。
析出する物質の原子は溶液中をブラウン運動しており、基盤またはすでに析出した分子に接触すると
そこに吸着される。原子が次々とやってくれば、次々と吸着が進んで、基板上に析出原子による構造が作られるだろう。
ブラウン運動のしかたや吸着の条件を変化させることで、この析出の様子がどのように変わるかを
調べたい。
平面への吸着を調べればいいのだが、ここでは簡単のために二次元空間をブラウン運動してきた粒子が
直線上の基盤に吸着されるモデルを作ろう。
たとえば以下のような規則ではどうだろう
- 粒子は格子状の二次元空間を動きまわり、基盤またはすでに析出した粒子に接触すると停止する。
- 基盤は二次元格子の最下行にある。
- 粒子は、各ステップごとに決まった確率で、上下に最大一マス、左右に最大一マス進む。どこへ動くかは乱数
によって決める(ブラウン運動のシミュレーション)
- すでに析出した粒子のどの位置に接触したら停止するかは、シミュレーションの前に決めておく(物質の種類が
違えば吸着のしかたも違うだろうから、それを考慮する)
- 粒子は一個ずつ現れ、それが停止すると次の粒子が出現する(溶液の濃度が非常に薄い場合を想定している)
プログラム化の例はここをクリック
はじめに
準備
以下の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
は上の三点でだけ吸着される