LAMMPS基本势函数命令(三)

在分子动力学模拟中,粒子间的相互作用是通过势函数命令来指定的。一般地,原子间的势函数命令有:pair_style, pair_coeff和pair_modify。而对于分子内的原子间的相互作用还需要:bond_style和bond_coeff命令来确定。本文重点介绍三个常用的定义势函数的命令,即:pair_style, pair_coeffpair_modify

1、pair_style

  • 语法

pair_style style args

  • 举例

pair_style lj/cut 2.5

pair_style eam/alloy

  • 说明

该命令设置了每对原子截断半径内的相互作用的势函数类型。这种势函数所定义的原子间的相互作用是随时间变化的,与此对应的bond_style所设置的原子间的相互作用一般不随时间变化。

在LAMMPS中,一些多体势也归类为对势,例如EAM, Stillinger-Weber, Tersoff, REBO等。因为这些势函数所定义的原子间相互作用也是随时间变化的。使用hybrid类型的势函数可以定义不同类型的原子以不同的势函数相互作用。

势函数的具体类型确定后,不同类型原子的势函数的具体参数由pair_coeff命令设置,也可以由read_data命令和read_restart命令进行文件读入。

pari_style命令一般会设置一个全局的截断半径,全局的截断半径是可以被pair_coeff命令中的截断半径重新覆盖的。一般地,在一个in文件里重新使用pair_style会抹去之前设置的所有pair_style和pair_coeff命令,除了对于pair_style table和hybrid的设置。

以下是所有pair_style可选类型的概述,在具体使用时,请具体参考manual文件。

pair_style none:关闭势函数相互作用。

pair_style hybrid:多种类型的势函数。

pair_style hybrid/overlay:多种可叠加的势函数。

pair_style zero:建立邻域列表但是没有相互作用。

pair_style adp:Mishin依赖键角的势函数。

pair_style airebo:Stuart的AIREBO势函数,常用于描述碳体系。

pair_style airebo/morse:利用Morse代替LJ势的AIREBO势函数。

pair_style beck:Beck势,最初用于模拟氦气。

pair_style body: 体类型粒子间的相互作用。

pair_style bop:基于量子力学计算sigma和pi键的键序势。

pair_style born: Born-Mayer-Huggins势函数。

pair_style brownian: Brownian势函数用于FLD(Fast Lubrication Dynamics)。

pair_style buck: Buckingham势函数。LJ势函数的变形。

pair_style colloid:整合的胶体势,描述颗粒与溶剂体系。

pair_style comb:优化电荷作用的多体势。

pair_style coul/cut:截断库伦势。

pair_style dpd:耗散粒子动力学。

pair_style dsmc:直接模拟蒙特卡洛方法计算粒子碰撞。

pair_style eam:嵌入原子势。

pair_style eim:嵌入离子势。

pair_style gauss:势函数的表达式具有Gaussian函数的形式。

pair_gayberne:考虑各向异性的LJ势。

pair_gran/hertz/history:考虑赫兹接触的细粒势函数。

pair_style kim:KIM项目势函数接口。Knowledge Base for Interatomic Models。

pair_style lcbop:长程键序势函数。

pair_style line/lj: 线段类型粒子的LJ势函数。

pair_style lj/charmm:CHARMM力场势函数。

pair_style lj/class2:COMPASS力场势函数。

pair_style lj/cut:截断的LJ势

pair_style lj/expand:扩展LJ势函数,粒子半径可以为变量。

pair_style lj/gromacs:GROMACS型LJ势。

pair_style lj/long:长程LJ势。

pair_style lj96/cut:LJ 9/6势函数。

pair_style lubricate:单一粒子弥散的液体润滑力计算。

pair_style meam: 修改的嵌入原子势。

pair_style mie/cut:Mie势函数。

pair_style morse:Morse势函数。

pair_style nb3b/harmonic:非键合三体简谐势函数。

pair_style nm/cut:N-M势函数,主要用于离子溶液。

pair_style peri:用于细观力学中的势函数计算。

pair_style polymorphic:自定义自由形式的三体势函数。

pair_style reax:反应力场势函数。

pair_style rebo:Brenner第二代REBO势函数。

pair_style resquared: Everaers二次椭球势函数。

pair_style snap:量子精度的谱分析邻域势函数。

pair_style soft:余弦形式的软化势函数用于分开重叠的原子。

pair_style sw:Stillinger-Weber 三体势。

pair_style table:创建势能表。

pair_style tersoff :Tersoff三体势。

pair_style tip4p/cut:用于TIP4P水分子模型的库伦势。

pair_style tri/lj:三角形间的LJ势函数。

pair_style vashishta :Vashishta 二体或三体势。

pair_style yukawa :Yukawa势函数。

pair_style zbl :Ziegler-Biersack-Littmark 势函数,用于屏蔽核排斥的高能原子碰撞模拟。

注意:在以上概述的势函数中,大部分在使用的时候需要特殊的功能包,在编译LAMMPS时需要加入相应的扩展包之后才能使用。

2、pair_coeff

  • 语法

pair_coeff I J args

I J:代表原子的类型,可以用*代表多种类型。

args:相应势函数的具体参数。

  • 举例

pair_coeff 1 2 1.0 1.0 2.5

  • 说明

该命令指定了不同类型原子间势函数的具体参数。其中I,J代表原子类型,可以利用具体的代表原子类型的数字表示,要求I<=J,IJ间的相互作用和JI间的相互作用是相同的。

采用星号*可以同时表示多种原子类型。此时I,J可以有四种表示形式:*, *n, n*, m*n。单个星号表示所有的原子类型1到N。一次类推,*n代表1到n。n*代表n到N。m*n代表m到n。

如果对同一对原子类型间设置多次势函数参数,新的参数会重新覆盖原来的参数。例如如下两行命令:

pair_coeff * * 1.0 1.0 2.5

pair_coeff 2 3 2.0 1.0 1.12

对于某些势函数当I不等于J的时候,势函数的参数需要根据I和I之间或者J与J之间的参数进行计算。此时可以通过pair_modify命令进行设置。对于大多数多体势来说,势函数的参数是通过文件的形式输入到模拟中的,此时需要把用到的势函数文件放入相应的文件夹或指定势函数文件的路径。

3.pair_modify

  • 语法 pair_modify keyword values

其中keyword可选的参数有: pair shift mix table table/disp tabinner tabinner/disp tail compute

  • 举例

pair_modify shift yes mix geometric

  • 说明

该命令可以修改当前定义的势函数参数。

pair关键字用于hybrid和hybrid/overlay两种类型的势函数。利用该关键字可以修改子势函数类型中的参数。special关键字和pair连用,可以定义子类型势函数中的独特的势函数参数。

pair_modify pair lj/cut/coul/long 1 special lj/coul 0.0 0.0 0.0

mix关键字用于当I不等于J时势函数参数的计算方法定义。并不是所有的势函数类型,都可以使用mix中的计算规则进行不同原子间的势函数参数计算。以下是mix参数的定义:

mix geometric epsilon_ij = sqrt(epsilon_i * epsilon_j) sigma_ij = sqrt(sigma_i * sigma_j)

mix arithmetic

epsilon_ij = sqrt(epsilon_i * epsilon_j) sigma_ij = (sigma_i + sigma_j) / 2

mix sixthpower

epsilon_ij = (2 * sqrt(epsilon_i*epsilon_j) * sigma_i^3 * sigma_j^3) / (sigma_i^6 + sigma_j^6) sigma_ij = ((sigma_i**6 + sigma_j**6) / 2) ^ (1/6)

shift关键字会影响在热力学参数输出中是否进行截断半径外的势能补偿。但该命令不影响模拟过程中实际力和轨迹的计算,只是在最终势能或总能量输出的过程中,补偿截断半径外的势能。

table和table/disp关键字可以提前建立长程库伦力或长程耗散力的表格。在模拟时,粒子间关于长程库伦作用项和长程耗散项的数值可以直接从表格中读取,从而增加模拟的效率。可以通过查manual文件中确定哪些势函数可以建立这些表格。

tabinner和tabinner/disp关键字可以设置上述表格中有关长程库伦力或长程耗散力的截断半径。

tail关键字为某些势函数的长程范德华力进行尾部校正。这些校正一般不会影响原子的动力学运动,除非系统在恒压模式下模拟。这些尾部校正也会影响到热力学量的输出。尾部校正项是在一次run的开始统计原子数量并进行计算的。如果在模拟过程中,原子有增加或丢失,需要重新设置run进行校正计算。

原文发布于微信公众号 - Bottom2top(gh_a3885137171a)

原文发表时间:2018-10-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券