计算化学公社
标题: 解决VASP计算SCF/几何优化/过渡态不收敛的方法总结 (待更新) [打印本页]
作者Author: 啦啦黑还黑 时间: 2019-5-1 00:42
标题: 解决VASP计算SCF/几何优化/过渡态不收敛的方法总结 (待更新)
本帖最后由 啦啦黑还黑 于 2019-5-1 00:52 编辑
达到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) 尝试更换不同的ISMEAR。(金属等导体用ISMEAR >= 1,半导体用ISMEAR = 0)
(11) 提高积分精度,PREC=Accurate,提高辅助格点精度,ADDGRID = .TRUE. 。
(12) 换用不同K点计算收敛,再读取CHGCAR,用高K点计算。
(13) 如果在结构优化或者MD过程中,某一步突然不收敛,使用MAXMIX = 50
(14) 尝试用更小的ENCUT或者更大的ENCUT的预收敛。
(15) 换更小的赝势或者更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.
作者Author: Penson 时间: 2021-9-23 14:57
有一个磁性体系,我把刘博的方法都尝试了,降低K点为gamma点确实可以收敛,但读取CHGCAR再加大K点回去,还是死活不收敛
作者Author: yydy 时间: 2021-11-28 10:15
最后你是怎么处理的?
作者Author: Penson 时间: 2021-11-29 10:21
还是要调AMIX,这是最有效的办法,把ALGO改成N。细节可以看刘博这个帖子:http://blog.wangruixing.cn/2019/08/18/wuque-convergence/
作者Author: Xian 时间: 2021-12-1 20:34
刘博士你好,请问一下,NEB计算,需要关闭对称性吗?谢谢。
作者Author: jugengfans 时间: 2022-11-3 18:39
学习了,最近算磁性体系 不用PREC=Accurate怎么算怎么收敛,但是开了PREC怎么算怎么不收敛。
回头试试。增加KPOINT算不动了,增加ENCUT什么的没用。试试调整AMIX
作者Author: 11101 时间: 2024-1-4 14:57
受教了
欢迎光临 计算化学公社 (http://bbs.keinsci.com/) |
Powered by Discuz! X3.3 |