计算化学公社

标题: vasp做过渡态经验<一>:NEB [打印本页]

作者
Author:
sky    时间: 2017-12-5 22:32
标题: vasp做过渡态经验<一>:NEB
本帖最后由 sky 于 2017-12-8 13:47 编辑

这算是一篇新手教学贴,简单谈一下做过渡态的经验,方便各种萌新入门。

NEB具体算法原理可见sob老师的帖子:过渡态、反应路径的计算方法及相关问题 - 思想家公社的门口:量子化学·分子模拟·二次元

最好使用vtst tool版本的vasp,里面有很多好用的算法,比原版vasp好用。编译方法见官网:Transition State Tools for VASP

以下NEB计算的方法只介绍vtst tool版本的vasp

NEB计算步骤如下:

1. 准备好初末构型的vasp文件: is.vasp,fs.vasp,以及脚本:nebmake.pl(来源:Transition State Tools for VASP),然后输入命令:
  1. > nebmake.pl is.vasp fs.vasp 8
复制代码
最后一个8代表生成8个image,如果运行成功,会在当前文件夹生成编号为00-09的十个文件夹,每个文件夹包含一个POSCAR。编号00和09的文件夹对应is.vasp和fs.vasp。

之后把配置文件INCAR,KPOINTS,POTCAR放到当前文件夹。INCAR文件需要有以下字段:
  1. IMAGES=8
  2. LCLIMB = .TRUE.
复制代码

IMAGES代表有8个image,LCLIMB是是否开启climbing image方法,详见官网。

nebmake.pl会用线性插值的方法在is.vasp和fs.vasp之间插入若干个image,这会导致其中某些image的构型极度不合理,比如某两个原子重叠在了一起,需要调整。可以自己把01-08文件夹中的POSCAR文件下载下来,调整后再上传,但比较麻烦。推荐使用我写的脚本nebinfo(来源:Mabinogiysk/VASP-script),输入image的数量之后,会生成一个压缩包NEBINFO.tar.gz. 里面包含有每个image的vasp格式文件,gjf格式文件以及xyz格式的动画文件(可用VMD观看)。

调整好image之后在当前文件夹执行vasp命令就可以开始NEB计算。

刚开始算的时候,由于构型不合理,因此选用最速下降法会比较快,也不容易出错。此时选择IOPT=7,跑个二三十步之后再换用IOPT=1,当然也可以从头到尾只用IOPT=1.

对于复杂的过渡态,NEB计算需要非常多的image才能收敛。因此我一般只跑个五六十步,根据经验来看,后面基本不会有太大变化了。

之后可以采用vtst tool中的脚本来输出最后一步NEB的信息,如能量、切线力等,用法请到官网查找。也可以使用我脚本仓库中的nebvtst.pl脚本:
  1. > nebvtst.pl 8
复制代码
该脚本将输出NEB计算每一步每个image的信息:
  1. steps: 60
  2. images: 1    -314.70152    -0.20180     0.07899
  3. images: 2    -314.66766    -0.10107     0.08997
  4. images: 3    -314.21920    -0.03095     0.06242
  5. images: 4    -314.82366     0.36034     0.08089
  6. images: 5    -315.02908     0.17184     0.10215
  7. images: 6    -315.14834     0.10812     0.06171
  8. images: 7    -315.21699     0.05799     0.05365
  9. images: 8    -315.25374     0.02400     0.12696
复制代码
三列数字从左到右分别是能量,切线力和受力最大的原子所受的力(都小于EDIFFG时NEB计算就收敛了)。

其中最重要的是切线力,切线力为零的点就是过渡态。正常的NEB计算切线力应该是从负值到正值或者从正值到负值,并且能量应该先升高再下降。不满足这两个条件时意味着计算很可能出错了。

对于上面这个计算,可以看到image3的切线力很接近0了,也就意味着这个image跟过渡态很接近了,可以把它单独拿出来做个优化(IBRION=1),有可能就收敛到过渡态了。

如果所有的image的切线力都比0差很多,如下面这样:
  1. steps: 42
  2. images: 1    -314.71090    -0.19732     0.67034
  3. images: 2    -314.68128    -0.10245     0.18674
  4. images: 3    -314.22095    -0.23067     0.47518
  5. images: 4    -314.80703     0.24911     0.40551
  6. images: 5    -315.01767     0.16162     0.27819
  7. images: 6    -315.13853     0.10266     0.38136
  8. images: 7    -315.21270     0.04747     0.28035
  9. images: 8    -315.25231     0.02491     0.24664
复制代码
就只能把零两边的image,即image3和image4拿出来重新用nebmake.pl插值再跑NEB,直到找到切线力接近零的点。这是原始版本的vasp做过渡态的方法,如果编译了vtst tool工具,采用climbing image方法,即设置LCLIMB = .TRUE. 基本上跑一遍NEB之后都会有一个image的切线力接近零,避免了重复插值。因此用vasp做过渡态一定要编译上vtst tool.

另外经常遇到的情况是切线力接近零的image拿出来做优化之后,发现力总是降不下去。此时NEB方法就无能为力了,需要另一个强大的过渡态搜索方法Dimer上场了。这就留做下一篇帖子来说了。








作者
Author:
smutao    时间: 2017-12-6 10:14
Can you add a working example for demonstration?
作者
Author:
sky    时间: 2017-12-6 10:16
smutao 发表于 2017-12-6 10:14
Can you add a working example for demonstration?

加例子太麻烦,以后有空再弄
作者
Author:
ztchem    时间: 2017-12-7 11:08
如果一个cineb过程没有收敛是否不能查看力的变换过程及最后一步力的值?
作者
Author:
sky    时间: 2017-12-7 15:47
ztchem 发表于 2017-12-7 11:08
如果一个cineb过程没有收敛是否不能查看力的变换过程及最后一步力的值?

可以
作者
Author:
hakuna    时间: 2017-12-8 08:47
写的挺好的!对初学者应该很有帮助!
通常大家都是neb到底,然后做个频率验证一下。
你这里有句话没讲清楚,
“.....对于上面这个计算,可以看到image3的切线力很接近0了,也就意味着这个image跟过渡态很接近了,可以把它拿出来跑一个IBRION=1,有可能就收敛到过渡态了。”
你把切线力接近0的那个image拿出来,再IBRION=1,这是要单独优化吗?优化的话,要限制某些自由度吗?
作者
Author:
sky    时间: 2017-12-8 13:48
hakuna 发表于 2017-12-8 08:47
写的挺好的!对初学者应该很有帮助!
通常大家都是neb到底,然后做个频率验证一下。
你这里有句话没讲清 ...

跟NEB一样就行了
作者
Author:
hakuna    时间: 2017-12-8 20:04
sky 发表于 2017-12-8 13:48
跟NEB一样就行了

呃,那就不存在把它拿出来了
IBRION=1的话,还原回到VASP内置的拟牛顿优化方法了,你觉得它比henkelmann的LBFGS好使吗?
作者
Author:
菩城    时间: 2017-12-15 16:38
好帖子,顶一下
作者
Author:
tuzhih    时间: 2018-6-17 14:00
想请教下,几个image中有个切线力接近零之后,但是每个image的受力都很大为1.0左右,这样的image也可以直接拿那个切线力为零的image做dimer吗
作者
Author:
kyuu    时间: 2018-6-18 10:04
再萌新也不能教人家用NEB,过渡态一律使用CINEB,用NEB会经常被审稿人质疑,需要解释为什么用NEB而非CINEB
作者
Author:
追翔少年    时间: 2019-3-16 19:45
个人观点,我用VTST搜过渡态结果会很奇怪,后来经过人指点还是用VASP自带的CNEB工具才有所改善,我觉得VTST对于无关基团旋转处理的不好,举个简单的离子有些CH3CO+H→CH3CHO的甲基会存在旋转然后就跑偏了
作者
Author:
Marineking    时间: 2019-6-29 17:33
你好,我使用你的github上的程序。比如:nebinfo,就显示
/bin/env: python3: 没有那个文件或目录
tar:./*vasp 无法stat: 没有那个文件或目录。
请问怎么回事?
作者
Author:
fallleave    时间: 2019-6-29 21:07
Marineking 发表于 2019-6-29 17:33
你好,我使用你的github上的程序。比如:nebinfo,就显示
/bin/env: python3: 没有那个文件或目录
tar:./ ...

机器上没有装python3。输入python3 -V,看看是否显示出正确的python3版本号。一般centos默认安装的是python2,自行安装一个python3。
作者
Author:
Marineking    时间: 2019-7-1 14:13
fallleave 发表于 2019-6-29 21:07
机器上没有装python3。输入python3 -V,看看是否显示出正确的python3版本号。一般centos默认安装的是pyth ...

我装了python3了,输入python-V 显示 python 3.7.3
作者
Author:
fallleave    时间: 2019-7-1 19:04
本帖最后由 fallleave 于 2019-7-1 19:11 编辑
Marineking 发表于 2019-7-1 14:13
我装了python3了,输入python-V 显示 python 3.7.3
1. 看一下是哪一行报错。把出错信息详细贴一下。
2. 看看nebinfo脚本里涉及到的几个python脚本是否都加了可执行权限。

作者
Author:
Sping    时间: 2019-7-12 05:23
把你的nebvtst.pl发我邮箱吗dong.tian@aliyun.com。我在您的脚本库里找到的是.py格式。我这有一个脚本,但是运行后不向您的例子里面那样输出NEB计算每一步每个image的信息。详见附件,谢谢。


作者
Author:
飞翔的小猪    时间: 2019-9-25 09:17
请问楼楼,使用CI-NEB计算,在插入过渡态之后,初态的状态却发生了改变,这是为什么呢
作者
Author:
飞翔的小猪    时间: 2019-9-25 09:48
求助,用CNEB方法进行过渡态插点,但00初态的文件会在插点后改变构型,这是为什么?
作者
Author:
EuphoriantWorld    时间: 2020-7-16 12:09
楼主您好,我在按您说的方法使用拟牛顿法后将CI-NEB中能量最高的结构优化回了末状态,请问是怎么回事?
作者
Author:
张丽    时间: 2020-10-28 21:39
好帖,先码了
作者
Author:
多次拒绝斯佳丽    时间: 2020-12-30 22:06
追翔少年 发表于 2019-3-16 19:45
个人观点,我用VTST搜过渡态结果会很奇怪,后来经过人指点还是用VASP自带的CNEB工具才有所改善,我觉得VTST ...

麻烦请问一下,vasp自带的cneb就是不用vtst吧?那是不是就没必要设置LCLIMB=T呢?如果这样的话,还是CINEB吗?我感觉就成了NEB?还是您的意思只是优化方法用vasp优化器而不是vtst优化器呢?谢谢,因为我师弟之后会算到旋转的有机分子集团,特此问一下您
作者
Author:
CCCCCCLEAR    时间: 2021-1-12 20:05
请问sky老师,切线力是使用nebbarrier.pl所得到力的数值,而原子所受的力是nebef.pl所得到的数值吗?因为我们实验室目前服务器暂时不能装python3,您的nebvtst.pl脚本无法使用,只能使用vtst自带脚本,想区分一下您在此脚本中得到的切线力与原子所收到的力这两个概念。若能得到您的解惑将给我很大帮助,感谢!
作者
Author:
Q-Chembio-llg    时间: 2021-4-28 17:59
请问如何调用VASP自带的NEB呢?我们的VASP在学校服务器上,没法改动谢谢
作者
Author:
夙雪夜归    时间: 2021-4-29 09:33
Q-Chembio-llg 发表于 2021-4-28 17:59
请问如何调用VASP自带的NEB呢?我们的VASP在学校服务器上,没法改动谢谢

可以看一下官网给的这个例子,自带的NEB其实就多了images和spring两个参数https://www.vasp.at/wiki/index.p ... t_adatom_on_fcc-Pt_(001):_Nudged_Elastic_Band_Calculation
插值的话可以直接用vaspkit的505功能

作者
Author:
fight    时间: 2022-2-28 10:12
sky 发表于 2017-12-8 13:48
跟NEB一样就行了

请问楼主,这个image跟过渡态很接近了,可以把它拿出来跑一个IBRION=1,那么INCAR的其他参数和结构优化一样还是和跑NEB的参数一样呀,不胜感激!
作者
Author:
yydy    时间: 2022-6-10 22:09
多次拒绝斯佳丽 发表于 2020-12-30 22:06
麻烦请问一下,vasp自带的cneb就是不用vtst吧?那是不是就没必要设置LCLIMB=T呢?如果这样的话,还是CINE ...

设置CHAIN= 0时,CLINEB默认为T;要用NEB的话应该要改为F
作者
Author:
QH1995    时间: 2022-6-12 18:06
能不能简单介绍一下IDPP插点法呢?目前我就是在IDPP插点法插入8个点,然后精度比较低(EDIFF = 1.0E-5, EDIFFG = -0.8)的粗算,再能量最高的两个点之间再插入5个点进行精度稍微高一点的计算(EDIFF = 1.0E-5, EDIFFG = -0.5),得到能量最高的那个点基本上就是我想要的过渡态
作者
Author:
lyzhang    时间: 2023-3-13 16:45
您好,请问过渡态计算收敛,但是没有虚频是为什么呢?增加收敛精度到E-7和-0.001后,有的结构出现了较小虚频,但是有的结构依然没有虚频,而且对照文献了路径没问题,
作者
Author:
Nora    时间: 2023-7-19 21:25
您好,我想问一下为什么计算之后发现CI-NEB不按照原来制定的路径走?
作者
Author:
2422759918    时间: 2024-3-24 18:46
nebvtst.pl这个脚本不是VTST自带的啊,请问楼主怎么获取呢
作者
Author:
Leix    时间: 2024-7-6 10:31
追翔少年 发表于 2019-3-16 19:45
个人观点,我用VTST搜过渡态结果会很奇怪,后来经过人指点还是用VASP自带的CNEB工具才有所改善,我觉得VTST ...

我想问一下是什么工具呢,我在计算CNEB时,分子跑散了
作者
Author:
ljb874722957    时间: 2024-11-7 20:54
Leix 发表于 2024-7-6 10:31
**** 作者被禁止或删除 内容自动屏蔽 ****

您好,我最近在计算cneb路径也散了,这个问题您解决了吗?




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3