現実世界と対応させる
前のページで算出した分子の速さは、コンピュータ内の単位系での速さになっています。具体的には、1 frame あたりの pixel 単位の速さです。
1 frame とは、draw ループが1回実行されるのにかかる時間です。
frame は時間の単位、pixel は距離の単位なので、分子の速さの単位は
pixel frame-1 だといえます。
これを現実世界での単位、s (秒) と m (メートル)に関係づけます。
プログラムの冒頭に次のような変数を定義します。
// Scale float s_scale = 5; //pm pixel-1 float t_scale = 0.01; //ps flame-1
s_scale は距離の対応 1 pixel が何 pm(ピコメートル) を表しているか、
t_scale は時間の対応 1 frame が何 ps(ピコ秒) を表しているか
を示す係数です。
これにより、先ほどの分子の速さを m/s で表すことができるようになります。
(単位換算の方法についてはこちら(マッカーリ・サイモン物理化学章末問題16-1の解説)をぜひ参照してください。)
ここまでできたら、分子量 M (単位: g mol-1) を定義して、各分子の運動エネルギー (mv2/2) を算出してみましょう。
運動エネルギーの平均値をボルツマン定数 (kB = 1.381 × 10-23 J K-1) で割れば、それが系の温度です。画面上に表示してみてください。
初期速度を1 pixel frame-1とし、窒素を想定 (M = 28.01 g mol-1) して、上の例のように sscale = 5, tscale = 0.01とした場合、温度は 421 K になるはずです。
ついでに、分子の大きさも sscale 係数で合わせてやりましょう。窒素のLJパラメータは
となっています。σ が分子直径に相当するので、画面上に表示される円の直径を窒素の大きさに合わせましょう。
次のページでは、分子間に働く相互作用を仮想世界に導入します。