LAMMPS ("Large-scale Atomic/Molecular Massively Parallel Simulator",大尺度原子/分子並列模擬工具)是由桑迪亞國家實驗室開發的一套分子動力學模擬的開源程式包。[1] LAMMPS使用MPI實現多機器平行計算,在新的版本中,支援基於CUDAOpenCL的GPU計算。其以GNU通用公眾特許條款釋出,因而開源自由。[1]

LAMMPS
開發者桑迪亞國家實驗室
目前版本2015年5月15日
作業系統跨平台
語言C++
特許條款GNU通用公眾特許條款
網站lammps.sandia.gov

LAMMPS最初為一美國政府與私人機構合作專案,由美國能源部與另外三所私有企業實驗室合作開發。[1]目前由桑迪亞國家實驗室負責維護和釋出。[1]LAMMPS當前使用C++編寫,早期版本使用Fortran77以及Fortran90。

特性

編輯

LAMMPS提供了元素週期表中原子對應的經驗勢函數,可進行與實際體系對應的分子動力學模擬,例如計算金屬鋁的晶格常數,[2]或水的密度,得到與實驗吻合的結果。另一方面也提供了多種模型勢函數,可用於進行粗粒化模擬,例如模擬基於粒子-彈簧模型的高分子鏈的性質。[3] LAMMPS作為實用程式包,採取了很多成熟的最佳化演算法。例如在短程相互作用的計算中運用韋爾萊表元胞列表最佳化臨近粒子的掃描。

用戶可在下至個人電腦,上至電腦叢集上執行LAMMPS。在並列環境下,LAMMPS使用空間分解技術,將整個模擬體系分解成若干個更小的體系傳遞給不同處理器執行,邊界的處理則使用「幽靈原子」保證整體的連續。LAMMPS對粒子密度均勻的立方體盒子體系的效率最高。LAMMPS具有廣泛的硬件加速支援,例如GPU (CUDA, OpenCL, HIP, SYCL), Intel Xeon Phi, 以及基於OpenMP多線程支援。[4]

使用方法

編輯

LAMMPS並不提供圖形化介面呈現模擬的結果以及相關工具進行建模,需要用戶自己使用指定格式的指令碼實現。程式執行中逐行讀取並執行指令碼內容。LAMMPS指令碼主要由四個部分組成:初始化、定義原子、設置參數、進行模擬。

LAMMPS還可編譯為共用庫,提供介面供程式呼叫,通過其它程式語言實現複雜的功能。從2015年3月的版本開始,LAMMPS也可編譯為Python模組,使用Python指令碼進行分子模擬工作。[1]。此外,LAMMPS還可以和其他自由能計算工具耦合,例如PLUMED和ColVar等[5][6]

參見

編輯

參考資料

編輯
  1. ^ 1.0 1.1 1.2 1.3 1.4 LAMMPS Molecular Dynamics Simulator. Sandia National Laboratories. [2010-10-03]. (原始內容存檔於2006-09-22). 
  2. ^ LAMMPS Help. [2015-08-11]. (原始內容存檔於2016-04-05). 
  3. ^ LAMMPS Polymer. [2015-08-11]. (原始內容存檔於2019-02-16). 
  4. ^ 1.3. LAMMPS features — LAMMPS documentation. docs.lammps.org. [2023-10-30]. (原始內容存檔於2023-10-30). 
  5. ^ Fiorin, Giacomo; Klein, Michael L.; Hénin, Jérôme. Using collective variables to drive molecular dynamics simulations. Molecular Physics. 2013-12, 111 (22-23): 3345–3362. doi:10.1080/00268976.2013.813594. 
  6. ^ Tribello, Gareth A.; Bonomi, Massimiliano; Branduardi, Davide; Camilloni, Carlo; Bussi, Giovanni. PLUMED 2: New feathers for an old bird. Computer Physics Communications. 2014-02-01, 185 (2): 604–613. doi:10.1016/j.cpc.2013.09.018. 

外部連結

編輯