
LAMMPS与GROMACS特点及优劣势对比
LAMMPS与GROMACS特点及优劣势对比
LAMMPS和GROMACS都是重要的分子动力学模拟的软件,其中GROMACS软件是现在市场上使用最广泛的分子动力学模拟软件,无论是社区还是功能都要强很多。但是LAMMPS作为材料领域最强的软件,有很多GROMACS无法实现的事情,两者结合基本可以实现分子动力学的全部功能。
计算速率
GROMACS的GPU加速一直随着版本更新,越新的版本加速能力越强,到现在为止,GROMACS的GPU加速能力几乎强于其他模拟软件的一倍,相当优秀。LAMMPS的GPU加速依赖两个包实现,Kokkos主要实现双精度的加速计算,GPU包主要实现单精度的加速计算。一般如果在服务器中进行运算的话,一般都是Kokkos。
并行方法
LAMMPS的并行方式依赖mpi,而GROMACS依赖一个魔改版的mpi,更加科学一些,速率也比较快。一般使用GPU加速时LAMMPS往往只用少数的核心CPU,而GROMACS却能自动调节使用并行,能利用所有的CPU能力。
编译方法
GROMACS的编译一般使用Cmake方法进行,其Cmake教程也比较丰富,操作相对来说简单。LAMMPS的编译方法可以用Cmake也可以用make方法, 但是Cmake方法可以找到的教程比较少,基本上都是make方法。麻烦度比较高,Cmake方法编译有官方的教程,但是按照他来的话,只能编译最基础的包,非常不建议,还有在最近的LAMMPS编译中,似乎和anaconda中的什么东西冲突了,要么别用anaconda配python,要么不要用base环境,自己建立一个基础环境,看需求增加。
模拟过程的区别细节
-
LAMMPS可以进行反应分子动力学reaxff,可以在MD中实现化学反应,这点GROMACS做不到
-
GROMACS的控温控压的方法比较多,且最新的velocity-rescale方法和stochastic cell rescaling方法都能使用
-
GROMACS可以使用lines语句,将H连接的化学键进行固定,而LAMMPS只能用shake的方法,shake方法耗费的计算资源较高。固定H化学键的目的是将H的振动消除,使得时间步长可以2fs.
-
GROMACS的运行逻辑是一个.mdp文件对应一个系综过程,即最小化、平衡、实际模拟过程需要3个.mdp文件实现,而LAMMPS只需要一个.in文件就可以进行整个模拟。.mdp文件中没有前后顺序的差异,.in有。并且LAMMPS中的fix部分在GROMACS部分不是在.mdp文件中出现,而是在后处理部分呈现
-
GROMACS的分析在计算之后进行,LAMMPS的部分分析在计算中就进行。这导致GROMACS的轨迹文件需要保存的帧数要多一些,因为没法像LAMMPS那样直接在运算过程中进行
-
GROMACS的稳压过程中,盒子大小的变化受到压缩系数的影响,这个一般设置为水的压缩系数,不需要其变化的时候需要设为0。LAMMPS的压力变化取决与压力现状与设定的值。
-
GROMACS的1-4作用等可以每类分子单独设置,而LAMMPS只能同时设置。
-
GROMACS的命令生成的文件,默认不进行覆盖,所以同一个命令往往会生成新的文件
-
GROMACS的.gro和.pdb文件在不包括速度的时候是等价的,但是pdb文件需要包括盒子的大小信息,这需要packmol.inp文件中增加如下内容,意味增加边界各向外延申1.5个单位。
add_box_sides 1.5
-
单位非常不一样,LAMMPS有多种类型的单位如real等,但是GROMACS只有一种单位。
-
GROMACS会自动生成组,组名一般是分子类型、残基类型等
-
GROMACS更新了新的时间步长策略,可以使得范德华力设为2fs而电荷力设为1fs。
-
GROMACS的内部力场引用功能非常强大。
-
LAMMPS可以用OVITO就不用VMD了,但是GROMACS一般必须用VMD,VMD得找个时间真的好好学一下了。
-
GROMACS的官方文档真的烂,找东西都不好找。
-
对于体系中会有原子数量不对应的情况,只有LAMMPS能用,GROMACS做不到。