在跑VASP晶格优化的时候,经常会碰到能量和受力来来回回地振荡,怎么都稳不下来,还有那个收敛的标准,也不清楚到底该怎么去把它收得更紧,通常,我们得先把事情给分清楚,这到底是电子步那边自己就不稳当,还是离子步和晶胞那些自由度的调整,做得太过激进了,VASP在做结构优化的时候,是根据一个控制离子位置、晶胞形状还有体积会不会发生变化的参数,来决定到底要放开多少自由度的,你放开的自由度越多,优化起来往往就越容易变难;一旦那个参数被设置成让晶胞的形状和体积可以同时变化,那么刚开始搭的那个结构、算出来的应力、每一次离子移动的步长,还有电子步的收敛情况,全都会影响到后面整个优化的轨迹。
一、晶格优化为什么总是震荡
当晶格优化在那里来回震荡的时候,我们不能只是盯着它最后有没有达到收敛,要把输出了详细信息的文件给打开,去看一看能量、受力,还有应力,这几样东西是在慢慢地往下降,还是在几个不同的结构之间,反复地跳来跳去。
1、一开始给的那个结构,离它真正平衡的位置太远了
如果一开始搭的那个晶格常数,跟它真实情况偏差得比较厉害,然后你又直接就把控制晶胞和原子自由度的参数给全部放开了,让原子、晶胞的形状还有体积同时去变,那优化器一下子,就得去处理好多好多的自由度,一种更稳当的做法是,先把它限制住,只让原子自己动一动,等原子位置稳一点了,再把体积的优化给放开,最后,才去把形状的优化也放开。
2、离子步的步长设得不合适
控制步长的那个参数,要是设得太大了,结构就很容易一步跨得太远,直接从势能面的谷底给跳过去,能量和受力,就会像荡秋千一样,在那里来回地摆;可要是设得太小了,算起来又会非常地慢,甚至看起来老半天都没有什么明显的变化,在做结构优化的时候,不同的算法也是由相应的参数来控制的,而这个步长参数,会直接影响到离子每一步更新的时候,到底移动多大的距离,碰上振荡的时候,可以先把步长给降到零点二到零点五左右,去试着算一下看看。
3、电子步自己压根儿就没有真正稳定下来
离子每往前走一步,它都要依赖电子自洽计算给出的结果,如果电子步那边自己就不稳,那后面跟着算出来的受力和应力,肯定也会跟着乱七八糟地跳,我们可以先去检查一下,在每一个离子步的里面,电子步是不是都妥妥地收敛了,然后再去调整电子的算法、迭代的步数、电荷混合的参数,还有展宽的方法和宽度,不要一上来就急着去把离子步的收敛标准给收紧。
4、算出来的应力,它的精度还不够
在做晶胞优化的时候,应力这个量是非常敏感的,VASP的官方说明里也提过,在算体积变化的时候,要注意一种因为截断能不够高而带来的应力误差,通常,是需要把能量的截断给提高,并且采用更严格一些的精度设置,来应对这个问题的。
二、晶格优化收敛标准该怎么收紧
在动手去把收敛的标准收紧的时候,要有一个先后的顺序,不能一口气地,把电子收敛标准、离子收敛标准、K点网格,还有能量的截断,这些参数全部都给调严了,要是参数一起发生变化,到了后面,你就很难去判断,结果的改善,到底是来自于哪一次的改动。
1、先去把电子的收敛标准给收紧
可以先把控制电子步收敛的那个标准,从比较宽松的数值,给收紧一到两个数量级,如果电子步本来就跑得不太稳,那就不建议直接把它收得特别特别的紧,因为那样做,很容易白白地增加计算的时间,却没有解决那个导致震荡的源头。
2、再去把离子步的收敛标准给收紧
控制离子步什么时候停下来的那个参数,当它被设为正数的时候,是看离子步之间总能量的变化来决定停不停的;而当它被设为负数的时候,则是看受力的范数来决定停不停,更常用的是那种直接靠力来判断的方式,看起来也会更直观一些,比如说,可以先拿一个比较粗的标准,来做一次初步的优化,然后再用一个更严格的标准,去重新算一遍。
3、分着阶段去做晶胞的优化
第一轮,可以先用一个只优化原子位置、不动晶胞的设置,去把原子的位置给调好;第二轮,再换成那个原子、晶胞形状和体积都可以同时变化的设置,去整体地优化;要是发现结构波动得特别明显,那就可以先用一个比较宽的标准,拿到一个大概的近似结构,然后再用更严格的能量截断、K点网络,还有离子步收敛标准,去做最终的优化,这样做,要比从一开始就拿着最严格的标准去硬跑,要省下不少的时间。
4、要同步地去检查一下K点网格和能量的截断
算出来的晶格常数,对K点网格和能量截断,是非常敏感的,当把离子步收敛标准收紧了以后,要是K点网格还太稀疏,或者是能量截断还偏低,那力和应力,还是有可能会不稳定,在晶胞优化这个阶段,最好让K点、能量截断,还有所用的赝势,都保持一致,不要在中途就随随便便地去换掉设置。
三、晶格优化的结果要怎么判断
最后得到的结果,它到底可不可靠,不能光看输出文件里出现了一句“已经达到了要求的精度”,就完事了,还得去看一看最终的结构、能量、受力、应力,还有它在物理上,到底合不合理。
1、去看一看能量的下降,是不是很平稳
如果在记录离子步过程的那个文件里面,每一步的能量都在那里大幅度地上上下下,那就说明整个优化的路径是不稳的,只有到了最后那几步,能量的变化已经非常小了,力和应力也跟着同步地降了下来,这才更像是正常收敛了的样子。
2、去看一看力和应力,是不是都达到了标准
只是盯着力来看,是不够的,在晶格优化放开了晶胞以后,应力也必须要去检查,尤其是那些来自外部的压力、应力张量的各个分量,还有晶胞参数变化的幅度,要是力已经达到标准了,可是应力还很大,那晶胞就有可能还是没有彻彻底底地放松到位。
3、用一次复算,来验证一下最终得到的那个结构
可以把最后一步优化完得到的那个结构文件,复制成新一轮计算的输入结构,然后,保持一套更严格的参数,去做一次静态的计算,或者是跑一次短时间的二次优化,如果这么算下来,能量、受力、应力,还有晶格参数的变化,全都非常非常小了,那就说明前面那一轮得到的结果,是比较稳当的。
总结
VASP的晶格优化,它之所以总是震荡,比较常见的原因就是,刚开始给的结构离平衡位置太远了、离子移动的步长设得太大了、电子步自己的收敛就没做稳、晶胞的自由度被放开得太早,或者是算出来的应力,在精度上还不够,在动手收紧收敛标准的时候,比较建议的做法是,先把电子步给稳定下来,然后再分着阶段,一步一步地把晶胞的自由度给放开,接着,再慢慢地把离子步的收敛标准、能量的截断,还有K点网格,给依次收紧,最后,在做判断的时候,不要只是看到那个计算停止的提示就完了,要结合着输出文件里记录的能量、受力、应力,还有复算的结果,放在一起去确认。