干货:VASP计算常见问题有效解决方法

VASP 计算会遇到各种各样的问题,常常让新手从入门到放弃(哭~。因此,整理了一些收藏的常见问题(群里询问较多)的 有效解决方法来源:网络,理论计算交流群等)。以后遇到同样问题,可以先按照提供的方法自行尝试解决。如果还不行,再咨询群里大师兄们~

1.结构优化不收敛

解决 VASP 几何优化不收敛的方法  http://bbs.keinsci.com/forum.php?mod=viewthread&tid=11228&fromuid=10994 (出处: 计算化学公社)

(1)如果力在接近收敛的区域震荡,很有可能是电子步精度不够高,尝试 EDIFF=1E-6 或者EDIFF = 1E-7
  1. (2)如果力在接近收敛的区域震荡尝试 IBRION=1
  2. (3)如果初始结构不好,或者在优化的前几步结构就崩了,IBRION=2,POTIM缩小到0.2或0.1。
  3. (4)如果在极小点附近出现震荡,可以缩小到0.05
  4. (5)调整初始结构。
  5. (6)如果体系结构复杂,原子多导致结构收敛慢,力收敛趋势和能量收敛趋势向下,尝试增加收敛步数,NSW=500,不建议取大于500的值。
  6. (7)尝试IBRION=3,阻尼md的方法往往对超大体系收敛效果好。
  7. (8)调整晶体的对称性,先使用ISYM=0优化,如果优化一开始的初猜结构具有较高对称性,那么优化过程中这个对称性多数情况下会一直保持。如果实际上体系本身势能面极小点的结构并没有那么高的对称性,则很容易造成优化不能收敛,而且即便收敛了也会有虚频。
  8. (9)改变收敛标准:几何优化的一般EDIFFG= -0.02,过渡态EDIFFG=-0.03.
  9. 对于体系较大难以收敛的体系,见到文献里有用EDIFFG= -0.05的。但是不建议使用更大的收敛标准了。
  10. (10)使用更精确的积分格点精度,PREC=Accurate等。
可以通过群里大师兄写的工具 cgrad 查看受力的情况
https://github.com/Ionizing/usefultools-for-vasp
干货:VASP计算常见问题有效解决方法

2.SCF 不收敛

解决 VASP 中 SCF 不收敛的方法总结 http://bbs.keinsci.com/forum.php?mod=viewthread&tid=11126&fromuid=10994 (出处: 计算化学公社)
  1. 1)先检查几何结构是不是合理,非常离谱的初始结构会导致 SCF 难收敛。
  2. (2)依次检查已经设置的参数,对照 ppt 的建议,是不是选择合理,对于+U和ICHARGE=11的任务,添加LMAXMIN=4 (对于d区体系),添加LMAXMIN=6 (对于f区体系)。
  3. (3)检查是不是 ISTART=1读取了不合理的波函数,如果是,rm WAVECAR CHGCAR重新跑。
  4. (4)如果ALGO=Fast或者VeryFast,换成Normal。
  5. (5)尝试使用更大的SIGMA值,先粗略收敛,再读取CHGCAR和WAVECAR用小的SIGMA计算。
  6. (6)对于非磁性体系(闭壳层ISPIN=1)添加:(注意AMIX和BMIX对收敛有很大影响,可以自己调试)
  7. AMIX = 0.2。
  8. BMIX = 0.0001 #almost zero, but 0 will crash some versions
  9. (6)对于磁性体系(自旋极化,ISPIN=2)添加:
  10. AMIX = 0.2
  11. BMIX = 0.0001 #almost zero, but 0 will crash some versions
  12. AMIX MAG = 0.8
  13. BMIX MAG = 0.0001 #almost zero, but 0 will crash some versions
  14. (7) 尝试更换不同的 ISMEAR。
  15. (8) 检查体系是不是特殊的磁性排列,即 MAGMOM 设置是否合理。
  16. (9) 提高积分精度,PREC=Accurate 。
  17. (10) 提高格点精度,ADDGRID = .TRUE. 。
  18. (11) 先用 1 1 1 K 点计算收敛,再读取 CHGCAR,用高 K 点计算。
  19. (12) 尝试不同的 ALGO 比如:ALGO=Conjugate。
  20. (13) 如果在结构优化或者 MD 过程中,某一步突然不收敛,使用 MAXMIX = 50
  21. (14) 尝试用更小的 ENCUT 或者更大的ENCUT的预收敛。
  22. (15) 换更小的赝势或者更soft的赝势。
  23. (16) 最后给出一个VASP官方教程里解决的不收敛的方法:
  24. 1.用ALGO=N (是否收敛N to 2,Y to 6)
  25. 2. ICHARG=12 (no charge update,非自洽计算,N to 5, Y to 3)
  26. 3. ICHARG=2 AMIX=0.1 ; BMIX=0.01(N to 4, Y to 6)
  27. 4. increase BMIXBMIX=3.0 ; AMIN=0.01(N to 5, Y to 6)
  28. 5. Bug report
  29. 6. Use this setting

3.WARNING in EDDRMM: call to ZHEGV failed, returncode = xxx

https://cms.mpi.univie.ac.at/vasp-forum/viewtopic.php?f=3&t=214
  1. 1) the RMM-DIIS diagonalisation algorithm is not stable for your specific
  2. setup of the calculation.
  3. --> use ALGO = Normal (blocked Davidson) or
  4. ALGO = Fast (5 steps blocked Davidson, RMM-DIIS)
  5. 2)
  6. a) maybe your input geometry was not reasonable (error occurs at the very first ionic
  7. step, please have a look for the geometry data of your run in OUTCAR ) or
  8. b) the last ionic relaxation step lead to an unreasonable geometry (compare the input
  9. and output geometries of the last ionic relaxation steps in XDATCAR).
  10. In that case (2b) it can be helpful to
  11. --> switch to a different relaxation algorithm (IBRION-tag)
  12. --> reduce the step size of the first step by setting POTIM smaller than the default
  13. value
  14. 3) The installation of the LAPACK on your machine was not done properly:
  15. use the LAPACK which is delivered with the code
  16. (vasp.4.lib/lapack_double.o)
  17. 4) If the error persist although you switched to the Davidson algorithm:
  18. on some architectures (especially SGI) some LAPACK routines are not working
  19. properly. However, it is possible to avoid the usage of the ZHEGV subroutine
  20. by commenting the line
  21. #define USE_ZHEEVX
  22. in davidson.F, subrot.F, and wavpre_noio.F and recompiling VASP.

4.固定轴优化

使用刘锦程大佬分享的 constr_cell_relax.F重新编译VASP即可,用法:添加  OPTCELL 文件,如固定 Z 轴(非正交体系同样适用)
  1. 110
  2. 110
  3. 000

5.ZBRENT: fatal error in bracketing

http://blog.sciencenet.cn/blog-3222255-1066034.html
  1. ENCUT = 400.0 【增加ENCUT,如 460 eV】 (不建议,收敛性测试做好!)

EDIFF = 1e-7  【改变EDIFF,如EDIFF= 1e-7 】 #测试通过,能量略高

EDIFFG = -1e-3

#SYMPREC=1e-6

IBRION = 2   【改变IBRION方式,如IBRION=1】      #测试通过,能量最低

POTIM = 0.05   【增加POTIM如,POTIM=0.1】【为加快收敛,可以减小KPOINTS】 #测试通过,不建议改KPOINTS

6.并行效率

https://www.nsc.liu.se/~pla/blog/2015/01/12/vasp-how-many-cores/
  1. 1.Check the number of bands (NBANDS). The number of bands divided by 8 is a good starting guess for the number of cores to employ in your calculation.
  2. 2.If you have more than one k-point, set KPAR to the number of compute nodes or the number of k-points, whichever is the smallest number.
  3. Then double the amount of cores determined in the previous step.
  4. 3.Make a test run and check the value of NGZ, it should be an even number and sufficiently big (larger than 3*cores/node).
  5. Adjust either the basis set size or the number of cores/node.

干货:VASP计算常见问题有效解决方法

7.四个指数切面

如:Ru(0001)
  1. 001(hkil)这四个指标不是完全独立的,i=-(h+k)

8.根号表面

来自讨论群
干货:VASP计算常见问题有效解决方法

未经允许不得转载:PHP100中文网 - 中国第一档PHP资源分享门户 » 干货:VASP计算常见问题有效解决方法

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏