势函数或力场描述了体系中粒子间的相互作用。这种相互作用在物理学中习惯称为势函数;而在化学中习惯称为力场,二者并没有本质的区别,本文统称为势函数。势函数设置是分子动力学模拟中的关键一环,直接影响模拟的精度和效率。因此,LAMMPS势函数命令是学习的重点。
LAMMPS中的pair_style, pair_coeff和pair_modify三个命令设置了势函数的类型和参数。neighbor, neigh_modify, comm_style和comm_modify四个命令设置了邻域列表建立和计算单元通讯,会显著影响势函数计算的效率。通常,分子动力学模拟中最耗时的步骤并不是力-加速度-速度-位移的积分运算,而是势函数的计算。因此,本文将详细地介绍以上七个命令,并通过实例帮助您快速掌握LAMMPS势函数命令。
1. pair_style
语法
pair_style style args
style可选:多种类型的势函数
args:某种势函数的参数
举例
pair_style lj/cut 2.5 pair_style eam/alloy pair_style hybrid lj/charmm/coul/long 10.0 eam pair_style table linear 1000 pair_style none
说明
该命令用于设置每对原子间的相互作用的计算公式。在LAMMPS中,对势函数定义了截断半径内原子对的相互作用,随着原子间距离的变化,原子对间相互作用也不断变化。尽管该命令直译为原子对势函数类型,它也能够设置大量多体势函数,例如EAM, Stillinger-Weber, Tersoff, REBO等。对势函数的数学表达式只与两个原子的相对位置有关,而多体势函数的数学表达式同时与三个或更多的原子位置相关。在LAMMPS中,对势函数和多体势函数统一由pair_style命令设置,为描述方便,下文统称势函数,区别于键长bond、键角angle等分子内的相互作用。
对势函数和多体势函数
势函数的具体类型确定后,不同类型原子的势函数具体参数由pair_coeff命令设置,也可以由read_data命令和read_restart命令进行文件读入。
pari_style命令一般会设置一个全局的截断半径,全局的截断半径是可以被pair_coeff命令中的截断半径重新覆盖的。在一个in文件里再次使用pair_style会抹去之前设置的所有pair_style和pair_coeff命令(pair_style table和pair_hybrid除外)。
下文将对LAMMPS的内置势函数进行概述,帮助您尽快找到适合的势函数类型: