解决VASP计算SCF/几何优化/过渡态不收敛的方法总结

  1. SCF不收敛尝试以下方法:
  2. 几何结构优化不收敛尝试以下方法:
  3. 过渡态优化不收敛依次尝试以下方法:

本文章为原创,版权归作者刘锦程所有,文章转载请先取得作者的同意,非常欢迎转发文章链接!严禁以任何方式挪用本文内容,用于以盈利为目的各种活动。

达到NELM步数上限时SCF仍没有收敛是实际研究中极为容易碰见的问题,VASP中经常会碰到电子步不收敛的情况,也叫做SCF不收敛。经常会在电子结构比较复杂的体系中碰到。

SCF不收敛尝试以下方法:

(1)先检查初始几何结构是不是合理,非常离谱的初始结构会导致SCF难收敛。

(2)检查初始磁矩设置(MAGMOM)是否合理,对于无磁性体系给与默认的磁矩或者高初始磁矩可能会出现Error EDDDAV: Call to ZHEGV failed报错。特殊的磁性排列的体系(AFM, FM),MAGMOM要设置合理。

(3)对于DFT+U和ICHARGE=11的任务,添加LMAXMIN=4 (对于d区体系),添加LMAXMIN=6 (对于f区体系)。

(4)检查是不是ISTART=1 或 ICHARG = 1读取了不合理的波函数,如果是,rm WAVECAR CHGCAR重新跑。

(5)更换ALGO,Fast或VeryFast,或Normal。

(6)对于杂化泛函计算使用ALGO=All,或ALGO=Damped。(此法也可用于 非杂化泛函的计算,SCF收敛以后要读取WAVECAR再用ALGO=Fast或Normal重新收敛一遍)

(7)尝试使用更大的SIGMA值,如SIGMA=0.5,先粗略收敛,再读取WAVECAR用小的SIGMA计算。(此方法经常奏效,但是读波函数再次用小SIGMA优化有可能碰到仍不收敛的情况。)

(8)对于非磁性体系(闭壳层ISPIN=1)添加:(注意AMIX和BMIX对收敛有很大影响,可以自己调试)

AMIX = 0.2
BMIX = 0.0001 #almost zero, but 0 will crash some versions

(9)对于磁性体系(自旋极化,ISPIN=2)添加:

AMIX = 0.2
BMIX = 0.0001 #almost zero, but 0 will crash some versions
AMIX MAG = 0.8
BMIX MAG = 0.0001 #almost zero, but 0 will crash some versions

(10) 偶极矫正通常会使得SCF变困难,可以把偶极矫正参数LDIPOL,IDIPOL删掉试试。

(11) 尝试更换不同的ISMEAR。(金属等导体用ISMEAR >= 1,半导体用ISMEAR = 0)

(12) 提高积分精度,PREC=Accurate,提高辅助格点精度,ADDGRID = .TRUE. 。

(13) 换用不同K点计算收敛,再读取CHGCAR,用高K点计算。

(14) 如果在结构优化或者MD过程中,某一步突然不收敛,使用MAXMIX = 50

(15) 尝试用更小的ENCUT或者更大的ENCUT的预收敛。

(16) 换更小的赝势或者更soft的赝势。

几何结构优化不收敛尝试以下方法:

(1)如果力在接近收敛的区域震荡,很有可能是电子步精度不够高,尝试EDIFF=1E-6或者EDIFF = 1E-7

(2)如果力在接近收敛的区域震荡尝试IBRION=1

(3)如果初始结构不好,或者在优化的前几步结构就崩了,IBRION=2,步长POTIM缩小到0.2或0.1。(尤其是对双原子分子的优化,要限制步长)。如果在极小点附近出现震荡,POTIM可以缩小到0.05。

(4)调整初始结构。过渡态优化失败不收敛最大的原因就是初始结构不合理。

(5)如果体系结构复杂,原子多导致结构收敛慢,力收敛趋势和能量收敛趋势向下,尝试增加收敛步数,NSW=1000。尤其是对于加了vdW校正的,优化收敛会变得非常慢。

(6)尝试IBRION=3,阻尼md的方法往往对超大体系收敛效果好。

(7)调整晶体的对称性,或先使用ISYM=0优化,如果优化一开始的初猜结构具有较高对称性,那么优化过程中这个对称性多数情况下会一直保持。如果实际上体系本身势能面极小点的结构并没有那么高的对称性,则很容易造成优化不能收敛,而且即便收敛了也会有虚频。

(8)改变收敛标准:几何优化的收敛标准一般为EDIFFG= -0.02,

对于体系较大难以收敛的体系,见到文献里有用EDIFFG= -0.05的。但是不建议使用更大的收敛标准了。

(9)使用更精确的积分格点精度,PREC=Accurate等。

过渡态优化不收敛依次尝试以下方法:

过渡态收敛要比几何优化困难的多,经常会碰到各种问题导致过渡态优化不收敛,原因非常多,再另外的博文中具体分析,所有用来解决几何优化不收敛的方法同样使用与过渡态。

(1)用nebmake.pl产生的初始点是线性插值的,很可能不合理。用idpp.py脚本非线型插点,可以避免不合理的初始结构。

(2)CI-NEB插点的数目不合理,(NEB是插点越多越精确,但是CI-NEB不是越多越精确!!!因为能量最高的点会自动climb到鞍点,如果CI-NEB计算正确结束,用1个点和用10个点找出来的过渡态是一样的。)

dist.pl ini/CONTCAR fin/CONTCAR的返回值除以0.8大概就是要插的点的数目。

(3)先用NEB或者CINEB进行粗收敛

EDIFF = 1E-5;EDIFFG = -0.5;IBRION = 3;POTIM = 0 ;IOPT = 7;ICHAIN = 0;LCLIMB = .TRUE.

​ 再用DIMER或者更高精度NEB精收敛

(4)再用DIMER精收敛的方法:

在NEB文件夹依次运行nebresults.pl和neb2dim.pl产生新的dim文件夹下进行Dimer运算,修改INCAR

EDIFF = 1E-7;EDIFFG = -0.03;IBRION = 3;POTIM = 0;ICHAIN = 2;IOPT = 2

注意:这里新生成的POSCAR使用的原NEB文件夹里的两个能量最高的结构的中点,如果粗收敛用的NEB是没问题的,但是粗收敛用的CINEB则需要把原CI-NEB文件夹里能量最高的点所对应的结构复制过来,
比如:cp ../03/CONTCAR ./POSCAR

MODECAR可以用neb2dim.pl自动产生的,
也可以先给新POSCAR算个频率,看一下振动方向,把自己认为最可能是过渡态的虚频的振动模复制出来做成MODECAR的格式。(该振动一般是频率最高的一个虚频)
也可以直接把所有原子的振动模都写成0,只把最关键的一个或几个原子(发生转移的)的模手动设置。(该方法只适用于发生转移的原子明显,且其他原子几乎不动的情况)

(5)再用CI-NEB精收敛的方法:

运行vfin.pl保存粗收敛的计算结果,再把所有CONTCAR复制成POSCAR重新计算,修改INCAR

EDIFF = 1E-7;EDIFFG = -0.03;IBRION = 3;POTIM = 0 ;IOPT = 1或2;ICHAIN = 0;LCLIMB = .TRUE.

或者用VASP自带的DIIS收敛方法(此法往往比vtst自带的收敛算法更易收敛):

EDIFF = 1E-7;EDIFFG = -0.03;IBRION = 1;POTIM = 0.1 ;IOPT = 0;ICHAIN = 0;LCLIMB = .TRUE.


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。