目录

在ReaxFF中设置阻碍原子穿越的弹性墙壁与外加电场

以下内容针对2019.3之前的版本。2022以后的版本参考ReaxFF-弹性墙壁:添加外电场、弹性墙壁

ReaxFF允许用户指定一个弹性墙壁,原子穿越该墙壁,需要较高能量,用户可以设置墙壁的宽度、高度(以能量为单位)。原子撞击到墙壁的时候会被弹回,但墙壁本身不是由原子组成,就是一个纯粹的势垒而已。在外加电场的情况下,如果不设置“弹性墙壁”,原子穿越边界,就会导致报错:“Warning: suspicious force-field eem parameters for , which may lead to unphysical charges.”

弹性墙壁的设置

基本的建模、参数设置与一般的MD模拟没有差别。建模的时候,设置了Lattice是30*30*30埃3,水分子均匀分布在其中:

之后,修改晶格为35*35*35埃3ADFinput > View > Axis显示坐标(请务必显示坐标轴,免得弄错原子的坐标范围)可以看到水分子所有原子的坐标集中在-15~15埃之间,xyz方向均如此(这很重要,因为设置墙壁的坐标和这个坐标是匹配的),如下图所示:

我们来尝试设置一个六面封闭的墙,围住这些水分子。打开*.run文件,找到如下字段:

cat > geo <<eor
***GRF 200
DESCRP ****

在这部分字段下面增加内容如下:

EWALL RESTRAINT 1  -17.5  2.5  300.0
EWALL RESTRAINT 2  -17.5  2.5  300.0
EWALL RESTRAINT 3  -17.5  2.5  300.0
EWALL RESTRAINT 1   17.5  2.5  300.0
EWALL RESTRAINT 2   17.5  2.5  300.0
EWALL RESTRAINT 3   17.5  2.5  300.0

表示增加了六面“墙壁”,其中1、2、3表示x、y、z轴方向,2.5表示墙的厚度的一半,300.0表示墙的高度为300.0kcal/mol。例如:

EWALL RESTRAINT 1  -17.5  2.5  300.0

表示在垂直于x轴,在垂直于x=-17.5的位置,有一个“墙壁”,厚度为2.5埃(由于30埃增加了5埃,这5埃就是墙的厚度),高度为300.0kcal/mol。这个值越大,原子越难以穿越。

不要照搬上述数值。理解其意义后,在根据自己的实际情况设置数值,墙的高度300kcal/mol可以设置的较为随意,例如保险起见设置很大:1000kcal/mol。

添加外电场

在ReaxFF自动生成的*.run文件中,增加字段,例如(#开头表示该行属于“注释”,对计算不起作用):

cat > eregime.in <<eor
#Electric field regimes
#start #V direction Magnitude(V/Angstrom)
0000 1 x  0.001
1000 1 x -0.001
2000 1 y  0.001
3000 1 y -0.001
4000 2 x -0.001  y -0.001
5000 2 x  0.001  y  0.001
eor

上述表示:

可以把这部分内容,加在:

cat > control <<eor
……
eor

字段的后面。

注意

  1. 确保没有分子在墙里面。
  2. 凡是修改过*.run文件,就不能再在图形界面里面去保存任务了,否则图形界面会按照图形窗口里面的参数设置,重新覆盖掉这些手动修改过的内容。直接运行任务即可。

结果查看

我们模拟了4万步,看看最后的结果:

可以看到整个过程中,水分子都局限在中间的一个区域内。View - Periodic - Map Atoms To (-0.5..0.5),Cell平移到与Input一样的格式。