Javaプログラミング
トップページ
|
目次
←前へ
次へ→
拡散律速凝集
拡散律速凝集(DLA:Diffusion-limted aggregation)
ブラウン運動する粒子が核となるクラスタに取り込まれクラスタを成長させる過程。
凝集とは粒子が結合し堆積物をなすことを指し、拡散律速とはクラスタの成長過程において粒子拡散の影響が支配的であることを指す。
DLA過程の模型はトーマス・ウィッテンとレオナルド・サンダーにより1981年に導入された。
代表的な例として、電析、鉱物の堆積、絶縁破壊などがある
拡散律速凝集 (DLA) によってできるクラスタ。
写真は溶液中の硫化銅が電析したもの
By
Kevin R Johnson
- See Author,
CC 表示 2.5
,
Link
コンピュータシミュレーションによる
拡散律速凝集 (DLA) によってできるクラスタ。
javascript版デモ
ブラウン運動
液体のような溶媒中に浮遊する微粒子(例:コロイド)が、不規則(ランダム)に運動する現象
1820年代にロバート・ブラウン(Robert Brown)が、水の浸透圧で破裂した花粉から水中に流出し浮遊した微粒子を顕微鏡下で観察中に発見
ブラウン運動の軌跡
DLAモデルによるクラスタの成長過程
初期状態はブラウン運動する粒子(浮遊粒子)と固定粒子(種粒子)が空間上に配置されている
浮遊粒子は空間上でブラウン運動する
浮遊粒子が種粒子に接触もしくは一定以内の距離に接近すると吸着(固定化)する
浮遊粒子が次々と吸着することでクラスタを形成する
DLAにより得られるパターン
種粒子を中心に配置した場合
種粒子を線状に配置した場合
プログラムでの実装
ブラウン運動のシミュレーション
浮遊粒子の動作(2次元ブラウン運動)を擬似乱数を使ってシミュレーションする
今回のシミュレーションにおいて、浮遊粒子は以下のように動作すると仮定する
浮遊粒子の運動の方向は0 から 2π の間で一様に分布する
単位時間辺りに進む距離(粒子の速さ)は一定
全ての浮遊粒子の速さは一様(全て同じ速さ。速度ではない)
浮遊粒子同士の衝突はなく、斥力、引力などの相互作用もない。またそれらによる速度の変化もない
浮遊粒子の運動モデル
時刻tの粒子のX座標、Y座標をそれぞれp(x,t)、p(y,t)として単位時間あたりの変位を以下のように定義する。 \[ \begin{eqnarray} \left\{ \begin{array}{l} p(x,t+1) = p(x,t)+r \cos(\theta) \\ p(y,t+1) = p(y,t)+r \sin(\theta) \end{array} \right. \end{eqnarray} \] rは単位時間に進む距離、θは0 から 2π の間のランダムな値とする。
粒子の吸着
浮遊粒子が固定粒子(種粒子もしくはクラスタ)に一定の距離以内に接近した場合、浮遊粒子はクラスタに吸着(固定化)する。 浮遊粒子pと固定粒子qの距離distは以下のように与えられる。 \[ dist=\sqrt{(p(x)-q(x))^2+((p(y)-q(y))^2} \] distが一定の距離以下の場合、すなわち一定距離εと以下の関係にある時浮遊粒子は固定粒子に吸着する。 \[ dist \le \epsilon \]
サンプルプログラム概要
サンプルプログラムはDLAモデルによるシミュレーションを行い、 時間によってクラスタの成長過程をアニメーションで表示する。
GIFイメージ
(クラスタのみ表示)
サンプルプログラム(実行可能JARファイル)
サンプルコード
シミュレーション条件
シミュレーション領域
領域サイズ:256×256(境界処理用の仮想領域を含めると258×258)
初期条件
固定粒子(種粒子)を中央(X=128、Y=128)に配置
浮遊粒子を領域全体(20×20矩形領域)にランダムノイズに配置
シミュレーション条件
種粒子の数:1
粒子数(種粒子含む):5000
表示
固定粒子を赤、浮遊粒子を白で表示