Ex76 过渡态任务的检查(一)
前面我们介绍了怎么准备过渡态计算的INCAR,POSCAR,POTCAR和POTCAR,这一节理所当然,就是要提交任务了。过渡态计算的时候,和大多数的计算是一样的:检查输入文件,准备好脚本,敲命令提交任务。所以,我们就在这三个方面展开,具体讨论一下里面的细节部分,避免不必要的出错,提高计算的成功率和效率。
心态
算过渡态的时候,要把自己想象成一个整装待命的狙击手,要熟悉自己的枪(VASP),周围的环境(影响计算的因素),以及狙杀的对象(计算的体系)。
枪
也就是VASP的输入文件,开枪前,先检查一遍自己的枪有没有问题。
怎么检查呢?
大师兄本人的方法就是:不断在心里按着顺序默念:INCAR,KPOINTS,POSCAR,POTCAR。然后根据自己的经验检查并修改。这里你也许会说,大师兄,那是因为你有经验了啊,才能这么做,没有经验的我,该怎么办呢?
不要怕,我们下面慢慢分析。
INCAR
对于大多数的计算,影响计算时间的主要因素是KPOINTS,体系的大小,INCAR中关于收敛的参数。这三者紧密相连。而INCAR中的计算在粗算的这一个环节里面,对时间的影响不是很大。这给我们的启示就是:不管是粗算,还是后面提高精度的计算,我们使用同样的设置即可。大家一般来说的低高精度的计算,主要集中在EDIFF和EDIFFG这两个参数上。体系不是很特殊,EDIFF=1E-5; EDIFFG=-0.02 就足够了。完全没有必要再粗算的时候将它们的数值调大点或者调小点。如果可以这样思考的话,那我们就可以将INCAR的参数提前设置好,用的时候直接拿来就可以了。
想到了这一点,下面我们的任务就轻松了,可以写个脚本,直接敲个命令生成CI-NEB计算的INCAR。这里大师兄用的是另外一个办法:
1) 先准备好一个INCAR,里面肯定把CI-NEB计算的参数等乱七八糟的都写好了。
2)将INCAR放在一个固定的目录下面,比如:~/bin/INCAR_neb
3)提交任务前,将INCAR复制过来即可。
4)划重点:alias 的骚操作。
1 | cp ~/bin/INCAR_neb INCAR |
这样的话,我们直接敲个命令,就可以得到INCAR文件了。
INCAR的检查:
前面的做法,并不代表我们就可以直接使用INCAR文件了。能不能直接用,取决于我们的具体计算细节。若INCAR中的参数与当前任务的不一致,或者缺少某些参数,我们就需要更新一下,主要有以下几个方面:
1) INCAR中默认的插点数目和实际不一致,记得更新。
2)若POSCAR中的结构有磁性,并且和INCAR中的不一致,记得更新;
3)如使用DFT-D2,INCAR中C6和R6的设置和POSCAR中的元素不一致,记得更新;
4)如使用DFT+U,INCAR中U和J的设置与POSCAR中的元素不一致,记得更新。
5)若计算的体系键能比较大,ISPRING这个参数可以稍微修改下,比如从-5调小到-8。
6)若发现slab体系粗算的时候,不怎么收敛,偶极校正取消一下。
KPOINTS的检查:
我们在粗算阶段,KPOINTS直接用gamma点即可。为了方便可以使用脚本kponits.sh 1 1 1 直接生成。也可以添加到我们的alias这个命令中:
1 | alias neb='cp ~/bin/INCAR_neb INCAR && kpoints.sh 1 1 1 ' |
POTCAR 的检查:
可以使用我们前面的自动生成与POSCAR对应POTCAR的脚本:
1 | cp 01/POSCAR . && pospot.sh && rm POSCAR |
为了方便,也可以直接将上面这句话添加到alias里面:
1 | alias neb='cp ~/bin/INCAR_neb INCAR && kpoints.sh 1 1 1 && cp 01/POSCAR . && pospot.sh && rm POSCAR ' |
POSCAR的检查:
POSCAR被归结到枪这一部分,其实也是我们狙杀的对象。在粗算这部分的检查,需要注意的地方有:
1) 确保slab被固定住了;否则你算完会发现表面的原子都疯掉了。前面我们讲过怎么通过脚本或者sed命令批量固定了,就不再过多叙述。
2)使用p4v一次性打开所有的POSCAR文件:p4v 0*/POSCAR ; 这里大师兄也是用了alias
1 | alias pp='p4v 0*/POSCAR' |
上面的2个操作都是在Linux下面的,p4v和ase-gui大家根据习惯随便选一款即可。
使用p4vasp,然后挨个点IMAGE对应的POSCAR,检查结构对不对;
使用ase-gui 将所有的文件全部打开后,摁键盘的PageUp和PageDown这2个键,类似于自己看一帧一帧的电影,体验也很棒。
- 检查插点的时候,原子是不是乱套了,没有一一对应;
- 检查我们插的点,是不是具有很好的化学或者物理意义,也就是预先评估下自己猜的这个路径靠不靠谱。
3) 使用Windows的用户先不用着急,大师兄正在学习VASPkit+VDM的骚操作。学会了下一节会及时更新,并提交过渡态的计算。
前面一节,我们提到说,在Ubuntu
或者其他Linux
系统下面,可以使用p4vasp
或者ASE
将结构批量打开,查看我们初步设置的NEB路径是否合理。但是在Windows
系统下,我们不方便使用命令进行查看。这里介绍一下在Windows
下面通过VASPkit
结合VMD
查看NEB路径结构的方法。
软件的获取:
VASPkit
程序的下载- 链接:https://sourceforge.net/projects/vaspkit/
- QQ群:217821116, 364586948
VMD
的下载链接:http://www.ks.uiuc.edu/Research/vmd/
vaspkit
的使用
1 | iciq-lq@ln3:/THFS/home/iciq-lq/demo_neb$ ls |
- 在终端输入:
vaspkit
- 输入:5 后回车
- 输入:504 后回车
- 然后你会得到一个
NEB.pdb
文件。 pdb
文件包含了00到09这几个文件夹中POSCAR
的结构信息,用以VMD
进行 查看。
VMD
查看pdb
文件
使用VMD
查看pdb
的方法,我们将VASPkit
中的具体说明拿过来展示一下:
- 在
Windows
系统中启动VMD
程序 - 将我们在服务器中生成的
NEB.pdb
文件下载到本地,然后拖到VMD
的界面 - 在
VMD
主窗口选择菜单Display
—>Orthographic
正交显示模式 - 在
VMD
主窗口选择菜单Graphics
—>Representations
—>Drawing Methods
选择CPK
- 默认是不显示盒子边界的,在
VMD
主窗口选择菜单Extensions
,选择Tk Console
, 在弹出的VMD TkConsole
窗口中输入pbc box -color white
,然后回车,查看模型结构。 - 点界面的右下角的箭头后,你可以看到我们初步猜测的
NEB
路径中原子快速动起来了。箭头左面有个speed
,我们可以调节原子的速度。 - 在
VMD
主窗口选择菜单Mouse
—>Label
—>2
, 然后去模型界面上,点与NEB
路径中最相关的2个原子,就可以查看NEB
路径中,原子间距离随着IMAGE
结构的变化了。
总结
Windows下的用户,在做过渡态计算的时候,可视化是一个痛点,通常来说,Images中的结构都只能一个一个打开查看,计算的时候不能很好地体会一个反应的发生路径。使用VASPkit则可以顺利地解决这个问题,这个功能更详细的说明,请参考VASPkit的使用手册。当然,这个方法也适用于Linux操作系统下VASPkit + VMD的操作。此外,大师兄还是建议大家有余力的时候多多接触类似于Ubuntu,Centos这样的Linux操作系统。