演題 近距離力を対象とする分子動力学計算のテーブルによる高速化
発表者
(所属)
○浦野靖久、 野口文雄、 三浦 弘 (埼玉大学工学部)
連絡先 〒338 埼玉県浦和市下大久保255
TEL/FAX 048-858-3536
キーワード 分子動力学、テーブル
開発意図
適用分野
期待効果
特徴など
Windows上で動作する扱いやすい分子動力学のソフトウェアの 作成を試みた。対象を近距離力を及ぼす粒子に限定することによって、 より高速に計算できる手法を採用し、その効果の程度や精度について 確認を行った。
環境 適応機種名 DOS/V、NEC PC-98シリーズ   
OS 名 MS-Windows95   
ソース言語 Borland C++ Ver. 4.5   
周辺機器   
流通形態
右のいずれ
かに○をつけ
てください)
  • 化学ソフトウェア学会の
    無償利用ソフトとする
  • 独自に配布する
  • ソフトハウス、出版社等から市販
  • ソフトの頒布は行わない
  • その他
  • ○未定
具体的方法

1.はじめに

 粒子に働く力によって、粒子の運動する軌跡を計算する分子動力学法はテーブルを用いることによって高速化することができる。近距離のみに相互作用を及ぼす粒子に対しては、計算の領域を制限することによって無駄な計算を省くことができる。また、力を得るためのポテンシャルエネルギーの計算においても、テーブルを作成することで高速化することができるが、この場合には若干の精度の犠牲を伴う。これらの手法によって、計算がどの程度高速化され、また精度がどの程度保たれるのかを検討した。

2.プログラムの概要

2.1 分子動力学の計算
 作成されたソフトウェアはWindows95上で動作するもので、C++を用いて開発を行った。分子動力学のアルゴリズムには一般的なVerletの方法を用い、基本的に全エネルギー一定の条件で計算した。原子間ポテンシャルとして2体力関数のレナード・ジョーンズポテンシャルを用いた。
2.2 高速化の手法
 高速化はテーブルによる2種類の手法で行った。一つ目はブロック分割法と呼ばれているもので、計算する領域を制限することによって計算対象の粒子を絞り込む方法である。二つ目はポテンシャルエネルギーの計算にテーブルを用いることによって、高速な計算を行った。ポテンシャルエネルギーは通常、指数関数などを用いた複雑な計算式で表されるため計算には比較的時間がかかる。またこの計算は非常に多く繰り返されるために、この部分の高速化は有効であるが、精度が若干低下する。テーブルに書き込む情報は距離0の位置から平衡距離までを100等分の割合で区切り、各位置でのポテンシャルエネルギーをあらかじめ求めて作成した。参照する値はこのテーブルを元に線形補間によって求めた。

3.計算結果

 図1に、1ステップの計算に要した時間を示す。高速化していない場合の計算時間は、正方形のプロットで表されている。これは理論上はほぼ粒子数の二乗に比例する。ひし形のプロットで表されているのはブロック分割法による高速化のみを用いた場合である。この場合は理論上は粒子数に比例するが、描画処理などの影響で直線にはなっていない。また、テーブルの作成に若干の時間を要するため、少ない粒子数では逆に余計に計算時間がかかることになる。200程度の粒子数でこの関係が逆転した。
 ポテンシャルエネルギーをテーブルによって計算した場合は粒子数に関わらず高速化され、さらに1〜2割ほど速くなった。これは式の複雑さによっても変わり、指数関数などが含まれた式ではより高速になると思われる。精度の低下については、ここでは4つの粒子を初期配置として定め、その後どのような運動をするかを計算した。高速化を行わなかった場合を理想的な計算結果として比較した。50ステップごとの粒子の位置の比較を図2に示す。見やすさのために平面上の運動のみを許している。実用上はほぼ問題のない精度が得られていると思われる。


図1.分子動力学計算1ステップに要した時間


図2.テーブルを用いたとき(下)と用いていないとき(上)との計算結果の比較

(数字はステップ数)