リアルタイム表示MDシミュレーションプログラム
claret ver.0.53
特徴
- 分子動力学(MD)シミュレーションにより、NaClのイオンの動きを再現できる
- MDシミュレーション実行中の粒子の動きをリアルタイムで表示できる
- マウス操作により好きな角度から系を見ることができる
- 実行中に温度を自由に変えられる
- イオンを新たに生成し衝突させることができる
- プログラムはOpenGLとglutを使って書いてあるのでWindows, Mac, Linux等 で実行可能
- 計算速度を表示できるので、ハードウェアのベンチマークも可能
- ハードウェアが対応していればステレオ立体視も可能
- MDGRAPE-2に対応
操作
マウスによる操作
マウス左クリック+左右 | z軸回転 |
マウス左クリック+上下 | y軸回転 |
マウス右クリック+左右 | x軸回転 |
マウス右クリック+上下 | 前後移動 |
マウス右左両方クリック+左右 | 左右移動 |
マウス右左両方クリック+上下 | 上下移動 |
マウス左中両方クリック+左右(3ボタンマウス向け) | x軸回転 |
マウス左中両方クリック+上下(3ボタンマウス向け) | 前後移動 |
マウス中クリック+左右(3ボタンマウス向け) | 左右移動 |
マウス中クリック+上下(3ボタンマウス向け) | 上下移動 |
画面に向かってこちら側がx軸の正方向、右がy軸の正方向、上がz軸の正方向としたとき
キーボードによる操作
q | プログラムの終了 |
! | 状態の初期化 |
v | 文字表示の有無の切り替え |
t | 温度100K上げる |
g | 温度100K下げる |
y | 温度 10K上げる |
h | 温度 10K下げる |
u | 温度 1K上げる |
j | 温度 1K下げる |
z | シミュレーションの停止・再開 |
c | バックの色の変更(黒・白) |
k | 壁の表示の有無の切り替え |
n | Naプラスイオン1個を出現させる |
m | Clマイナスイオン1個を出現させる |
N | イオンを4個出現させる |
M | イオンを27個出現させる |
1-9 | 粒子数を変更する、粒子数は数字の3乗×8 |
space | MDGRAPE-2による計算とホストによる
計算の切替 (MDGRAPE-2使用時のみ) |
粒子を出現させた後は[0]-[9]キーで発射速度を決め、[space]キーで発射します。 方向は粒子を出現させたときの視線の向きです。
シミュレーションについて
- イオンの動きをシミュレートするために、 全てのイオン間の相互作用を計算して各イオンに働く力を求めニュートン方程式を解いています。
- シミュレーションを行っている系はNaClで、 相互作用にはTosi-Fumiポテンシャルを使用しています。
- 表示は赤がNaプラスイオンで緑はClマイナスイオンです。
- [n],[m],[N],[M]を押すとワイヤーフレーム状の小ささなイオンが出現し、 徐々に大きくなっていきます。 成長が止まったら[0]-[9]で初速を設定します。 画面上には各キーに対応した秒速と時速とそれを温度に換算した量が表示されます。 その後、スペースキーを押すとイオンを出現させたときの視線に沿って設定された速度で動き始め、 速度の設定時に表示された温度分だけ温度が上昇します。
- NaClの融点は1081K、沸点は1738Kなので温度が融点を超えた場合系は液体になり、 沸点を超えた場合は気体になります。
- イオンを衝突させ系を気体にした後に温度を下げ液体の温度にすると、 系は凝集をはじめ液体のクラスターが生じます。
- 壁の表示の有無に関わらず、 壁は存在しますので表示を消している場合は何も無いところで粒子は反射します。
ダウンロードとインストール
ダウンロード
ファイルの中身
- crtf53.c(ソースファイル)
- crtf53.exe(Windows用実行ファイル)
- SP_00.PPM(テクスチャファイル)
- SP_01.PPM(テクスチャファイル)
- SP_10.PPM(テクスチャファイル)
- SP_11.PPM(テクスチャファイル)
インストール
プログラムはOpenGLのglutを使って書かれているので、 コンパイルや実行にはOpenGLとglutの環境が必要となります。
glutは http://www.xmission.com/~nate/glut.html にありますので、ご自身の環境に合わせてインストールを行ってください。
詳しくはglut32.dllのダウンロード を参照して下さい。
コンパイル時の注意
ファイル冒頭の#defineで定義されている変数によってプログラムの 動作が変わります。
変数 | 値 | 動作 |
---|---|---|
MDM | 0 | ホストによる計算 |
2 | MDGRAPE-2による計算(要MDGRAPE-2) | |
STEREO | 0 | 通常の表示 |
1 | ステレオ立体表示(要ハードウェア) | |
TEXTURE | 0 | ポリゴン表示のみ |
1 | テクスチャ表示も可能 |
注:time関数関係でコンパイルできないときは、LAP_TIMEという変数をdefineしている部分をコメントアウトしてください。