LAMMPS

Large-scale Atomic/Molecular Massively Parallel Simulator (LAMMPS) は、サンディア国立研究所の分子動力学プログラムである。並列計算にMessage Passing Interface (MPI) を利用し、GNU General Public Licenseの下で配布されるフリーかつオープンソースのソフトウェアである。
LAMMPSは開発開始当初、アメリカ合衆国エネルギー省の研究室と民間組織の研究室との間で共同研究開発契約を交わし開発されていた。2016年時点では、サンディア国立研究所とテンプル大学の研究者らによって維持、管理および配布されている。
プログラムの特徴.
ワールドワイドに使われている分子動力学プログラムの中では、プログラム自身の拡張性の高さと、入力スクリプトによる柔軟な制御が特徴的である。拡張性の高さにより、豊富な種類の力場、計算スキームに対応している。
ファンデルワールス力、Coulomb力、結合力などそれぞれの相互作用の関数形を個別に設定できる。適切に組み合わせることで、Dreiding、OPLS、GROMACS、CHARMM、Amber、COMPASS、CVFFなどの有機物向けの汎用力場を利用できる。ただし、与えられた分子構造に対し力場パラメータを自動で割り当てる機能はない。EAM、Tersoffなどの無機物向け力場も利用できる。また、散逸粒子動力学などの粗視化手法にも対応している。ユーザ独自の相互作用を組み込んでLAMMPSを拡張した例もある。
入力スクリプトでは、on-the-flyでの物理量計算手順の細かい指定、if文やループ文による計算フローの細かい制御、様々な外力の印加などが可能となっている。
力場パラメータの割り当てと同様に、初期構造の作成、構造の可視化、高度な物理量計算はLAMMPS本体に実装されていないため、自作プログラムや第三者により開発されたプログラムとの併用が必要である。
アルゴリズムの特徴.
計算効率向上のため、ベルレ・リストを使用して近接粒子の情報を管理している。このリストは、粒子の局所密度が大きくなり過ぎることがないような、近距離で反発する粒子の系に対して最適化されている。
並列計算機上では、シミュレーション領域全体を小領域に分割し、各小領域を各プロセッサに割り当てて計算を行う方式が取られている。この方式において、各プロセッサは隣接する各小領域の原子の情報を相互に通信し記憶する。そのため、LAMMPSは比較的均一な密度分布を持つ直方体セルの系において最も並列効率が良くなる。
Coupled spin and molecular dynamics計算に対応している。