计算化学公社

 找回密码 Forget password
 注册 Register
Views: 109696|回复 Reply: 70
打印 Print 上一主题 Last thread 下一主题 Next thread

[VASP] vasp做过渡态经验<二>:Dimer

  [复制链接 Copy URL]

103

帖子

5

威望

1000

eV
积分
1203

Level 4 (黑子)

Dimer是vasp内置的另一个强大的过渡态搜索方法,而且与NEB联用的时候有奇效。Dimer算法和NEB有一点相似,NEB是在初始态和末态之间插入image,然后计算image之间的切线力来寻找切线力为零的点。而Dimer在某种程度上可以看作是使用了两个靠的很近的image,程序会计算出这两个image之间的曲率,并沿着曲率增大的方向爬升,直到到达鞍点(此时曲率一定为负)。详解请看sob帖子:过渡态、反应路径的计算方法及相关问题

由于有且只有两个image,Dimer占用的计算资源要比NEB小不少,在做大体系过渡态搜寻的时候很有优势。并且Dimer不会像准牛顿法一样会陷入到局部极小值,导致原子受力无法收敛,因此用来做过渡态的优化同样也有巨大的优势。

Dimer的问题只有一个,就是需要一个好的初猜,一个接近过渡态的初猜构型。对于有经验的人来说,可以直接猜出构型然后跑Dimer。但这对于初学者来说比较困难,因此比较好的方法是先跑一个NEB,然后选取一个切线力接近零的image来跑Dimer。根据我的经验来看,一找一个准,效率比纯用NEB高很多。

在阅读以下内容之前,请先按照vasp官方pdf手册里dimer计算的例子做一遍。是pdf手册,online手册里没有计算的例子:Documentation

做Dimer的方法如下:

1. 选取一个好的初猜构型,可以是自己猜的,也可以是用NEB找出来的。然后像做过渡态频率分析一样,对关键性的原子做频率分析(IBRION=5),频率分析的精度不需要太高,像这样的参数足够了:
  1. ENCUT = 200
  2. EDIFF = 1E-06
  3. IBRION = 5
  4. NFREE = 1
复制代码
频率分析完成后会有一个或多个虚频,提取出来做成动画观看,找到需要的振动方向(目标化学键断裂/生成的振动方向)。可使用我的脚本Mabinogiysk/VASP-script
  1. > imagefreq.py
复制代码
会输出:
  1.    --------------------Processing--------------------
  2.                           freq23
  3.                           freq24
  4.        --------------------Done--------------------
复制代码
表示有编号23、24两个虚频,然后使用脚本:
  1. > freqmov.pl POSCAR freq23 freq24  30 0.6
复制代码
会生成freq23.xyz、freq24.xyz两个文件,用VMD打开即可观看振动动画。其中30是动画的帧数,0.6是振动的幅度的缩放系数。

找到需要的虚频之后另外新建文件夹,然后把POSCAR文件和freq文件复制过去,比如找到的是freq24,就把freq24也复制过去。注意更改优化的原子范围,做频率分析的时候可以只做其中关键的几个原子,剩下的都固定住。做dimer的时候可以全部原子一起优化,不仅限于频率分析的那几个原子。然后在新的文件夹里执行:
  1. > modemake.py freq24
复制代码
会生成一个MODECAR文件,或者也可以自己创建这个MODECAR文件,然后手动把振动频率复制粘贴过去。该文件格式在vasp官方的pdf手册里有。

做Dimer计算时切记不能少了MODECAR文件,没有这文件程序不会报错,而是会随机初始化一个搜寻方向。最后发现跑了大半天跑错了。

再放入KPOINTS、INCAR、POTCAR文件,其中INCAR需要加入以下参数:
  1.   IBRION = 3
  2.   POTIM = 0
  3.   ICHAIN = 2
  4.   DdR = 0.005
  5.   DRotMax = 10
  6.   DFNMin = 0.01
  7.   DFNMax = 1.0
复制代码
参数的意思官网上写的很清楚,请仔细阅读。

使用vtst tool的vasp会额外生成一个DIMCAR文件,跑dimer的时候要随时注意观察里面的参数:
  1. Step         Force        Torque        Energy     Curvature         Angle
  2.     1      10.66425       7.30318    -313.00133      -8.31593       3.93420
  3.     1      10.66425       4.60136    -313.00133      -8.89013      10.49022
  4.     1      10.66425       4.28355    -313.00133      -9.56912       5.58496
  5.     1      10.66425       2.25775    -313.00133      -9.97084       1.47304
  6.     1      10.66425       1.42447    -313.00133     -10.01435       0.72662
  7.     1      10.66425       1.01984    -313.00133     -10.01417       1.35954
  8.     1      10.66425       1.25866    -313.00133     -10.04105       0.58905
  9.     1      10.66425       0.74732    -313.00133     -10.10158       1.33623
  10.     2       3.92046       6.15419    -313.53353      -2.28795      12.73724
复制代码
需要注意的是Torque、Curvature和Angle. Torque是旋转的力的大小,Angle是旋转角度,力越大,旋转角度越大,Curvature是曲率。

一个正常的dimer计算,在每一个step里,例如上面的step1中,Torque和Angle应该越来越小,Curvature为负且越来越大。到step2时,由于原子移动了,这些值会重新变大,但在每一步里最终都应该收敛到1以下。刚开始的时候可能Torque会比较大,Curvature也会为正值。但如果跑到step5之后Torque和Angle依然不收敛或者Curvature是正值,那这个构型肯定出错了。
  1. 16       0.30555       0.76073    -314.21155      -5.02730       1.05284
  2. 17       0.34635       0.70113    -314.21341      -5.06017       1.07320
  3. 18       0.19482       0.80455    -314.21545      -4.88598       0.82223
  4. 18       0.19482       0.51358    -314.21545      -4.87067       0.67008
  5. 19       0.17114       0.78338    -314.21625      -4.77814       1.06994
  6. 20       0.13178       0.99078    -314.21700      -4.76946       1.34724
  7. 20       0.13178       0.63770    -314.21700      -4.71167       0.66381
  8. 21       0.09606       0.76383    -314.21723      -4.84227       1.29235
  9. 22       0.09606       ---        -314.21723       ---           ---
复制代码
这才是一个正确的dimer,刚开始Torque比较大,需要旋转很多次才能移动原子。快要收敛的时候基本上只会旋转一两次。






评分 Rate

参与人数
Participants 27
威望 +1 eV +96 收起 理由
Reason
XIEH + 5 谢谢
zqian + 4
温吞水 + 2 谢谢分享
zhangshu + 5 谢谢
博尔赫斯 + 4 谢谢
phoenix + 3 谢谢分享
jiajj + 1 谢谢分享
zxn113355 + 3 谢谢
含光君 + 5 谢谢
Dawenxic + 3 好物!
xlw + 1 精品内容
CJW + 4
Jiongci-21 + 2 好物!
丁枫祝 + 5 谢谢
abcdedg + 2 赞!
谪仙俊 + 3 好物!
yiningyi + 3
坚持就完事了 + 1 谢谢
wrtgcn + 5 赞!
alonewolfyang + 5 好物!

查看全部评分 View all ratings

471

帖子

0

威望

1795

eV
积分
2266

Level 5 (御坂)

2#
发表于 Post on 2017-12-8 09:21:41 | 只看该作者 Only view this author
写得非常好!
做过频率计算之后,查看振动模式时,还可以直接用wxdragon

47

帖子

0

威望

4283

eV
积分
4330

Level 6 (一方通行)

3#
发表于 Post on 2017-12-26 21:55:04 | 只看该作者 Only view this author
Dimer_test$ python imagefreq.py
imagefreq.py:26: Warning: 'with' will become a reserved keyword in Python 2.6
  File "imagefreq.py", line 26
    with open(file_name, 'w') as output_file:
            ^
SyntaxError: invalid syntax
您好,我在使用您的imagefreq.py时出现以上错误,是因为python版本原因吗?我的python版本是Python 2.5.2。

103

帖子

5

威望

1000

eV
积分
1203

Level 4 (黑子)

4#
 楼主 Author| 发表于 Post on 2017-12-28 22:26:19 | 只看该作者 Only view this author
DavyHou 发表于 2017-12-26 21:55
Dimer_test$ python imagefreq.py
imagefreq.py:26: Warning: 'with' will become a reserved keyword in ...

需要python2.6

47

帖子

0

威望

4283

eV
积分
4330

Level 6 (一方通行)

5#
发表于 Post on 2017-12-29 04:45:56 | 只看该作者 Only view this author

非常感谢。另外还有个小问题,是python2.6及以上版本都可以吗,还是限定2.6版?

21

帖子

0

威望

252

eV
积分
273

Level 3 能力者

6#
发表于 Post on 2017-12-31 02:45:28 | 只看该作者 Only view this author
谢谢分享!已发送个学生学习!

59

帖子

0

威望

962

eV
积分
1021

Level 4 (黑子)

7#
发表于 Post on 2018-2-14 19:47:17 | 只看该作者 Only view this author
本帖最后由 lianghuashou 于 2018-2-14 19:50 编辑

非常感激您的分享,我的系统是CENTOS 7.0 运行的时候有点问题,我已经export $PATH
/Ultility/vasp_ultility/vasp_edit_script/vas2gv.pl: line 5: syntax error near unexpected token `('
不知道这是python版本的问题还是哪里的问题,我的python是2.7.5 。期待并谢谢您的解答。

26

帖子

0

威望

55

eV
积分
81

Level 2 能力者

8#
发表于 Post on 2018-6-8 10:39:11 | 只看该作者 Only view this author
你好,我看vasp说明中的improved dimer method,只需要把算的频率加在POSCAR后边,以及IBRION设为44就可以了。为什么你们不用这个呢?还是说我理解错了?请指教,谢谢。

50

帖子

0

威望

970

eV
积分
1020

Level 4 (黑子)

9#
发表于 Post on 2018-7-16 15:44:40 | 只看该作者 Only view this author
能否再初态和末态之间用modemake.pl产生MODECAR来做dimer呢?

5

帖子

0

威望

83

eV
积分
88

Level 2 能力者

10#
发表于 Post on 2018-9-27 23:18:59 | 只看该作者 Only view this author
感谢,请问使用 imagefreq.py的时候出现这种是什么原因,该怎么解决?
Traceback (most recent call last):
  File "./imagefreq.py", line 4, in <module>
    from VASP import read_total_atoms
ImportError: No module named VASP

50

帖子

0

威望

970

eV
积分
1020

Level 4 (黑子)

11#
发表于 Post on 2018-12-25 09:37:38 | 只看该作者 Only view this author
将VASP-script-master中的Vasp.pm和VASP.py复制到~/bin下即可解决楼上所提问题

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
wrtgcn + 2 正解

查看全部评分 View all ratings

16

帖子

0

威望

235

eV
积分
251

Level 3 能力者

12#
发表于 Post on 2019-2-21 22:28:27 | 只看该作者 Only view this author
有点意思 发表于 2018-9-27 23:18
感谢,请问使用 imagefreq.py的时候出现这种是什么原因,该怎么解决?
Traceback (most recent call last) ...

你好,我在用这个脚本的时候也出现了同样的问题,请问您解决了吗?

5

帖子

0

威望

83

eV
积分
88

Level 2 能力者

13#
发表于 Post on 2019-2-28 16:40:58 | 只看该作者 Only view this author
美美pig 发表于 2019-2-21 22:28
你好,我在用这个脚本的时候也出现了同样的问题,请问您解决了吗?

你好,没有解决。我没有用代码,直接手动处理的,算频率,然后把信息粘过来再算过渡态。

16

帖子

0

威望

235

eV
积分
251

Level 3 能力者

14#
发表于 Post on 2019-3-3 17:47:43 | 只看该作者 Only view this author
有点意思 发表于 2019-2-28 16:40
你好,没有解决。我没有用代码,直接手动处理的,算频率,然后把信息粘过来再算过渡态。

手动怎么算的啊?是把算完频率的后三列复制到坐标下吗?我一直没有解决这个问题

10

帖子

0

威望

1185

eV
积分
1195

Level 4 (黑子)

15#
发表于 Post on 2019-4-21 21:44:30 | 只看该作者 Only view this author
使用ned2dim.pl是不是就不用频率分析,直接生成dimmer文件夹,MODECAR文件

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 05:30 , Processed in 0.185198 second(s), 26 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list