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. 

外部链接