LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)即:大規模原子分子並行模擬器,主要用於分子動力學的一些計算和模擬工作。
工具/原料
Linux基本操作或者Windows命令操作
lammps軟件包
後處理軟件VMD AtomEye Pymol Raster3d RasMol等
相似軟件生物分子模擬軟件CHARMM,AMBER,NAMD,NWCHEM,Tinker
方法/步驟 1 LAMMPS概述
LAMMPS可以模擬液體中的粒子,固體和汽體的系綜,可以採用不同的力場和邊界條件來模擬全原子,聚合物,生物,金屬,粒狀和粗粒化體系。他可以計算的體系小至幾個粒子,大到上百萬甚至是上億個粒子。主要是根據不同的邊界條件和初始條件對通過短程力和長程力相互作用的分子、原子和宏觀粒子集合進行牛頓運動方程積分計算,並得出先關的後續運動狀態和相關分析。
LAMMPS可以在單個處理器的臺式機和筆記本上運行並且具有較高的計算效率,但它是專門為並行計算機設計的。他可以在任何一個按裝了C++編譯器和MPI的平臺上進行運算。
LAMMPS是一款可以修改和擴展的免費計算程序如:可以加新的力場,原子模型,邊界條件和診斷功能等。
高效率計算的LAMMPS通過採用相鄰清單來跟蹤他們鄰近的粒子。這些清單是根據粒子間的短程互拆力的大小進行優化過的,目的是防止局部粒子密度過高。
在並行機上,LAMMPS採用的是空間分解技術來分配模擬的區域,把整個模擬空間分成較小的三維小空間,其中每一個小空間可以分配在一個處理器上。各個處理器之間相互通信並且存儲每一個小空間邊界上的”ghost”原子的信息。LAMMPS(並行情況)在模擬3維矩行盒子並且具有近均一密度的體系時效率最高。
方法/步驟 2 LAMMPS的功能
一般功能:
可以串行和並行計算(即可以用一個核計算也可以多核並行計算)
分佈式MPI策略
模擬空間的分解並行機制
開源軟件
高移植性C++語言編寫
可選性:MPI和單處理器串行FFT
可以進行擴展,以求得到新特徵和功能
只需一個輸入腳本就可運行
有定義和使用變量和方程完備語法規則
在運行過程中循環的控制都有嚴格的規則
只要一個輸入腳本試就可以同時實現一個或多個模擬任務
可以作為庫函數,可以通過庫函數界面或者提供Python包裝來調用Lammps
結合其他軟件一起使用,Lammps可以調用其他軟件,其他軟件也可以調用Lammps
模擬最小單元和模擬類型:
(命令 atom style)
原子
粗粒化粒子(如聚合物的珠子-彈簧)
全原子聚合物,有機分子,蛋白質,DNA
聯合原子聚合物或有機分子
金屬
粒子材料
粗粒化介觀模型
有限尺寸延伸球形與橢圓形粒子
有限尺寸線性分割(2D)和三角形(3D)粒子
點偶極粒子
剛性集合粒子
這些模型的的雜化類型
力場
(命令:pair style, bond style, angle style, dihedral style, improper style, kspace style)
對相互作用勢: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, Yukawa, soft, class 2 (COMPASS), 氫鍵, tabulated(表格)
帶電對相互作用勢:Coulombic, point-dipole.
多體作用勢: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), embedded ion method (EIM), EDIP, ADP, Stillinger-Weber, Tersoff, REBO, AIREBO, ReaxFF, COMB, SNAP, Streitz-Mintmire, 3-body polymorphic
長程庫倫勢、點偶極子勢和LJ分散勢:Ewald, Wolf, PPPM (similar to particle-mesh Ewald)
極化模型: QEq, core/shell model, Drude dipole model
電荷平衡:(QEq via dynamic, point, shielded, Slater methods)
粗粒化作用勢:DPD, GayBerne, Resquared, Colloidal, DLVO
介觀作用勢:granular, Peridynamics,SPH
電子力場(eFF, AWPMD)
鍵勢能:harmonic, FENE, Morse, nonlinear, class2, quartic
鍵角勢能:harmonic, CHARMM, cosine, cosine/squared, class2(COMPASS)
二面角勢能:harmonic, CHARMM, multi-harmonic, helix, OPLS, class2(COMPASS)
糾正勢能:harmonic, CVFF, class2(COMPASS)
聚合物勢能:all-atom, united-atom, bead-spring, breakable
水勢能:TIP3P,TIP4P,SPC
隱式溶劑勢能:hydrodynamic lubrication, Debye
可以有與普適化力場如CHARMM,AMBER,OPLS,GROMACS相兼容的力場
可以採用GPU加速的成對類型
通過pair kim 引用KIM archive的勢函數
雜化勢能函數:multiple pair, bond, angle, dihedral, improper potentials(多對勢能處於更高的優先級)多個勢函數可以用在同一個模擬過程中。
重疊勢函數:多個對勢疊加
原子創建:
(命令:read_data, lattice, create-atoms, delete-atoms, displace-atoms, replicate)
從文件中讀入各個原子的座標
在一個或多個晶格中創建原子
刪除幾何或邏輯原子基團
複製已存在的原子多次
替換原子
系綜,約束條件,邊界條件:
(命令:fix)
二維和三維體系
正角或非正角模擬空間
常NVE,NVT,NPT,NPH積分器
原子基團與幾何區域恆溫控制
有Nose/Hoover和Berendsen壓力控制器來控制體系的壓力1-3維度
模擬合子的變形(扭曲與剪切)
簡諧(unbrella)束縛力
剛體約束
SHAKE鍵與鍵角約束
Monte Carlo 鍵斷裂,形成,和交換
原子/分子插入和刪除
各種邊界環境
非平衡態分子動力學NEMD
各種附加邊界條件和約束
積分器:
(命令 run, run_style, minimize)
Velocity-verlet積分法
Brownian積分法
剛體積分法
共軛梯度或最束下降算法能量最小化法
rRESPA繼承時間延化積分方法
rerun命令 用於後處理的dump文件
診斷
見各種各樣的fix 和compute 命令
輸出:
(命令:dump, restart)
log文件:熱力學信息
文本dump文件:原子座標,速度和其它每個原子信息
二進制重啟文件
並行I/O的dump和restart文件
每個原子量包括:能量,壓力,中心對稱參數,CAN等
用戶自定義系統寬度或各原子的計算信息
每個原子的時間與空間平均
系統寬量的時間平均
原子圖像,XYZ,XTC,DCD,CFG格式
數據的前處理與後處理:
軟件包裡整合了某些的前處理與後處理工具,它們可以把lammps和其他軟件的輸入和輸出文件相互轉換。在../tools下,包括以下處理軟件amber2lmp binary2txt ch2lmp chain colvars createatoms data2xmovie eam database eam generate eff emacs fep i-pi ipp kate lmp2arc lmp2cfg lmp2vmd matlab micelle2d moltemplate msi2lmp phonon polymer bonding pymol_asphere python reax restart2data vim xmgrace xmovie
可以使用獨立發行的工具組pizza.py, 它可以進行LAMMPS模擬的設置,分析,作圖和可視化工作。
特別功能:
實時的可視化與交互式MD模擬
與有限元方法結合進行原子-連續體模擬
在POEMS庫中提供了剛體積分工具
並行裉火
並行複製動力學
對低密度液體直接使用MC模擬
Peridynamic介觀建模
目標型與無目標型分子動力學
雙溫度電子模型
方法/步驟 3 LAMMPS不具備的功能:
由於LAMMPS是對牛頓運動方程積分的工具,所以很多必要的數據前處理與後處理功能是LAMMPS核心不具備的。其原因為:
保證LAMMPS的小巧性、前處理與後處理不能進行並行運算、這些功能可以有其它工具來完成、原代碼開發的侷限性
特別地,LAMMPS不能:
通過圖形用戶界面來工作
創建分子體系
自動的加上力場係數
為MD模擬提供智能化的數據分析
MD的可視化
為輸出數據作圖的建議
我們需要為LAMMPS輸入一系列的原子類型,原子座標,分子拓樸信息和所有原子與鍵的力場參數。LAMMPS不會自動的為我們創建分子體系與力場參數。
對與原子體系,LAMMPS提供了creat-atoms命令來為固態晶格加上原子。可以能過pair coeff,bond coeff, angle coeff等命來加上小數目的力場參數。對於分子體系或更復雜的模擬體系,我們通常會用其它工具來創建或者是轉換LAMMPS輸出文件來做到這些事情。有的還會寫一些自已的代碼來完成這項任務。
對於一個複雜的分子體系(如,蛋白質),我們需要為之提供上面個拓樸信息與力場參數。所以我們建議用CHARMM或AMBER或其它的分子建模器來完成這些任務,並把之輸到一個文件中去。然後,改變其格式以達到LAMMPS所允許的輸入格式。
同樣,LAMMPS的輸出文件是一種簡單的文本格式,我們也可以通過其它的工具來換專這些格式。
我們可以用以下幾個軟件來完成高質量的可視工作:VMD、 AtomEye 、Pymol、Raster3d、RasMol
最後要說一下的是,以下這些也是自由分子動力學包,它們大多數是並行的,可能也適合來完成你的研究工作,當然也可以與LAMMPS聯合起來使用以完成模擬工作。CHARMM、AMBER、NAMD、NWCHEM、DL_POLY、Tinker
CHARMM,AMBER,NAMD,NWCHEM,Tinker是專們用於模擬生物分子的。
注意事項
在學習lammps軟件之前要先了解分子動力學的模擬基礎
懂一些Linux的基礎操作將有利於lammps的後續學習
本經驗製作時間2015-8月份,因軟件會有更新,請隨時關注官網進行學習。