LAMMPS: 大規模原子・分子並列シミュレーター
LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)は、
サンディア国立研究所が開発した分子動力学のシミュレーションプログラムです。このプログラムは、
Message Passing Interface(MPI)を利用した
並列計算能力に搭載されており、
GNU General Public Licenseのもと無料で利用できるオープンソース
ソフトウェアです。
開発の歴史
LAMMPSは初期にアメリカ合衆国のエネルギー省に属する研究所と民間の研究機関との共同研究契約により開発が進められました。現在では、
サンディア国立研究所及び
テンプル大学の研究者たちがその維持、管理、さらには配布を行っています。
プログラムの特徴
この分子動力学プログラムの大きな特長は、その高い拡張性と、入力スクリプトを用いた柔軟な制御機能です。ユーザーは、多様な力場や計算手法に Kobo対応することができ、たとえば
ファンデルワールス力、Coulomb力、結合力などの各相互作用の数式を個別に設定可能です。これにより、Dreiding、OPLS、
GROMACS、
CHARMM、Amber、COMPASS、CVFFといった有機物に適した汎用力場を利用できる一方で、自動で力場パラメータを割り当てる機能は備わっていません。
無機物に対しても、EAMやTersoffといった力場が利用可能で、さらに粗視化手法の散逸粒子動力学にもほんの少しの対応を示しています。ユーザーは独自の相互作用を定義してLAMMPSを拡張することもできるのです。また、入力スクリプトによっては、物理量の計算手順をその場で詳細に指定したり、if文やループで計算プロセスを調整したりすることも容易です。
ただし、力場のパラメータ設定や初期構造の作成、構造の可視化、また高度な物理量計算はLAMMPS自体には実装されていないため、外部のプログラムや自作プログラムとの連携が必要となります。
アルゴリズムの特徴
LAMMPSは計算パフォーマンスの向上を図るため、近接する粒子情報の管理にベルレ・リストを採用しています。この方法は、粒子間で反発力が働く際に局所密度が過度に集中的にならないよう工夫されており、シミュレーションを効率よく行えるよう設計されています。
また、
並列計算機を利用する際には、シミュレーションの領域を亜区域に分け、それぞれの区域を個別のプロセッサに配分して計算を行います。プロセッサ間では、お互いの隣接領域の原子情報を通信し合い調整するため、比較的均一な密度分布を持つ直方体セルのシステムにおいて特に高い並列効率を発揮します。さらに、Coupled spin and molecular dynamics計算にも対応しています。
このように、LAMMPSは多様な分野での分子動力学シミュレーションにおいて、その柔軟性と拡張性から広く活用されています。