cndaqiang Web Linux DFT

vasp+VTST进行NEB过渡态计算

2018-12-07
cndaqiang
DFT
RSS

参考

一个人就是一个叠加态-vasp-vtst计算过渡态(NEB方法)具体过程
sky-vasp做过渡态经验NEB
FAN_冬-VASP+NEB
bbs(大师兄科研网)

致谢

感谢学术之友公众号的推广,公众号内包含多种学术干货、科研资讯、科研招聘等信息,
感谢留言区的@Lei指出文中原来存在的错误

需要

vasp+vtst,编译编译vasp5.4.1+VTST

处理脚本下载vtstscripts,解压后放在PATH路径

流程

  • 分别对初态和末态进行结构优化
  • 使用脚本生成中间过程图像(结构)
  • NEB计算
  • 处理结果

文件结构

初态末态结构优化

变化的原子在POSCAR中的位置一定要一一对应
变化的原子在POSCAR中的位置一定要一一对应
变化的原子在POSCAR中的位置一定要一一对应
如图,体相Si中在(0.125,0.125,0.125)处有空位,(0,0,0)处的Si运动到此处 构建POSCAR时,不仅是把64个Si原子的POSCAR中对应空位的原子删除
还要调整顺序,把变化的两个位置放在POSCAR的中相同位置

结构优化同vasp正常的结构优化一样

初态末态输入文件所在文件夹建议命名为inifin
INCAR中的EDIFFG参数使用力收敛标准,比如EDIFFG=-0.02
在两个文件夹里面运行vasp任务就可以
输入文件参数的设置要和之后的过渡态计算一致

构建中间图像

将处理脚本下载vtstscripts,解压后放在PATH路径
inifin文件夹的上层文件夹

检测初末结构相似度

每个对应原子的初末态距离的平方和,再开根号
<5埃,即可

[cndaqiang@managernode new-6.2]$ dist.pl ini/CONTCAR fin/CONTCAR
2.03953509783509

插入中间图像的POSCAR

[cndaqiang@managernode new-6.2]$ nebmake.pl ini/CONTCAR fin/CONTCAR N 
  • N为中间图像的数量,之后要在INCAR中写入这个N,本例N=4
  • 执行完命令后出现文件夹00,01,02 , … ,N,N+1
  • 00表示初态,里面放的是ini/CONTCAR, N+1表示末态,放的是fin/CONTCAR, 01-N是插入的点
  • N+2个文件夹里面的文件名称都是POSCAR
  • 将来提交任务时,使用的CPU一定要是N的整数倍
  • 一般插点数目可取(dist.pl返回值/0.8)

将ini和fin的OUTCAR分别复制到00,N+1文件夹中,便于后续分析

准备INCAR KPOINTS POTCAR 文件

KPOINTS,POTCAR同初末态计算一致
INCAR非过渡态参数与初末结构优化一致
NEB参数

  • LCLIMB=.TRUE. #通知vasp使用VTST计算
  • ICAHIN=0 #通知vasp使用VTST计算
  • IMAGES=N #之前添加的图像数量N image number
  • 结构优化算法(过渡态计算的优化器Optimizer)选择vasp或者vtst的
    • vasp优化算法
      IBRION =1 (quasi-Newton) 或3 (quick-min) (基于力的优化方法)。
      POTIM = 取个合理的数值。
      bbs.一般来说,如果你感觉自己插的点基本上就是反应的路径了,可以使用IBRION= 1。
      bbs.如果你的初始和末态结构不是很理想,插的点也是马马虎虎,那么3则是一个很好的选择。
      bbs.IBRION选择完了,我们还要设置一个合理的POTIM。个人经验0.1-1.0之间都是可以接受的。
  • SPRING=-5

    bbs.使用多大的劲控制蚂蚱不乱跳: 这个参数是干嘛的? 查阅一下VTST的官网,链接
    The nudged elastic band (NEB) is a method for finding saddlepoints and minimum energy paths between known reactants and products. Themethod works by optimizing a number of intermediate images along the reactionpath. Each image finds the lowest energy possible while maintaining equalspacing to neighboring images. This constrained optimization is done by addingspring forces along the band between images and by projecting out the componentof the force due to the potential perpendicular to the band.
    什么意思呢?打个比方,这8个IMAGES就是一条绳上的8只蚂蚱,这些蚂蚱只能在一个方向上跳,
    在优化的时候,蚂蚱跳的太远,或者太偏就会被拉回来。
    拉回来的这个力就是通过SPRING这个参数来设置的。
    而我们之前的优化优化计算中,一条绳上只栓一只蚂蚱,该蚂蚱则比较自由,
    前后左右可以随便跳,并且没有人往回拽,这也是过渡态计算和普通优化所不同的地方。
    具体的理论部分,大家自行查阅NEB相关的参考文献。
    如果你算的一个基元反应,两个原子之间的键很强,
    那么我们就需要将SPRING这个参数设置的更负一些,
    比如SPRING= -10,-15 或者-20。(不一定是-5的倍数,也可以是-6,-11 等。)
    如果你不知道怎么设置,一般来说默认值-5就足够用了

过渡态计算

准备好输入文件后,就可以提交计算任务了
如果一运行就终止了,查看01文件夹下面的OUTCAR,最后一行,可能会给出原因

检查是否收敛

nebef.pl

  • 第二列即为最大受力force of images in the neb,(有些结构,由于天然的对称性,受力为0)
    我的INCAR中EDIFFG设置为-0.02,当所有结构最大力小于0.02eV/A时,结束计算
    上图中的力都小于0.02,此时已经完全收敛,计算结束。
  • 第三列为相应结构的能量。
  • 第四列为与初始结构的能量差

检查切向力

nebbarrier.pl 
cat neb.dat

  • 该命令没有输出到屏幕的内容,而是生成neb.dat文件。
  • 第二列表示距离(即临近两结构的dist.pl的计算结果),
  • 第三列表示能量(以初态能量为参考值),
  • 第四列为切向力(forces along the neb)
    过渡态附近切向力会正负变号,而且接近0
    如图中图像3对应的图像,就很可能是过渡态,将其CONTCAR取出,在其附近结构优化一下应该可以找到过渡态
    过渡态能量是极大值,也可以确认
    过渡态另一特征是有且仅有一个虚频,对找到的过渡态计算一下振动频率可以进一步确认

结果打包

先修改一下这个程序nebresults.pl再使用
将57到71行注释掉:
如果不注释它就会把你的OUTCAR文件压缩
如果正在计算的时候执行,VASP找不到OUTCAR,计算终止
另:这个命令需要使用gunplot进行画图,没有安装也没问题,忽视报错,可以用其他软件画图
这个打包也就是依次执行了这几个程序,并用gunplot画了eps格式的图
gunplot安装最下面会提到

nebresults.pl

Unziping the OUTCARs ... done
Do nebbarrier.pl ; nebspline.pl
Do nebef.pl
Do nebmovie.pl
Do nebjmovie.pl
Do nebconverge.pl

做了这些事情

  • nebbarrier.pl, 生成neb.dat,包含,收敛情况,NEB方向力,能量,上面已说明
  • nebspline.pl, 生成的spline.dat文件是对neb.dat里 能量v距离的关系进行插值,用来画mep.eps
    mep.eps是以dist.pl距离为横坐标,能量为纵坐标画出的能势垒图,可用EPS/PS viewer打开
    我们也可以使用neb.dat的数据用自己喜欢的画图软件插值画图
  • nebef.pl, 上面已分析收敛 受力,能量,结果在nebef.dat
  • nebmovie.pl, 生成结构变化
  • nebjmovie.pl,
  • nebconverge.pl
  • 还有对各文件夹中的OUTCAR打包压缩。生成了很多文件。
    生成的vaspgr文件夹内是各个插点结构的收敛图

我计算的一个mep.eps图为
图中在00-02之间数据不足,我又在00-02之间插值模拟,这次使用origin读取neb.dat画图,如图

更多案例

参考DFT-EXERCISES里面solution.pdf里面的第6章的过渡态计算内容

使用默认的gcc编译gunplot

wget https://jaist.dl.sourceforge.net/project/gnuplot/gnuplot/5.2.5/gnuplot-5.2.5.tar.gz
tar xzvf gnuplot-5.2.5.tar.gz 
cd gnuplot-5.2.5/
./configure --prefix=/home/cndaqiang/soft/gunplot/
make
make install

再把./configure --prefix=/home/cndaqiang/soft/gunplot/bin添加到系统PATH就可以了


本文首发于我的博客@cndaqiang.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!


类似文章


评论


广告


广告
访客数据