在VASP计算里,能量截断到底该取多大,还有把它提高以后,结果又会跟着变化多少,碰到这种问题,不能只是看到别人论文里写了多少电子伏特,就直接拿过来照着填,这个参数,它控制的是平面波基组的大小,按照VASP的文档说明,它会决定哪些平面波能够进入计算,而且这个能量截断,跟FFT网格一起,会很明显地影响到计算的精度,所以,对于不同的元素、不同的赝势、不同的结构,还有你想要去算的物理性质,都一定得自己动手去做收敛的测试。
一、能量截断该取多大
在VASP里面,这个参数通常的做法,是先去看一看POTCAR文件里写着的那个推荐值,然后再在这个数值的基础上,去做进一步的测试,不要长期地依赖那个系统默认给出来的值,VASP的文档也建议,要在INCAR文件里面,手动地去把这个能量截断给写下来,这样做,是为了避免在不同的计算之间,精度上出现了不一致,结果导致最后算出来的总能量,没办法被可靠地放在一起去比较。
1、先去查一下POTCAR里面的那个推荐值
把POTCAR这个文件给打开,在里面搜一下那个推荐值的字段,对于一个体系里面有好几种元素的情况,要去看每一种元素所对应的那个推荐值,然后,通常是用那个最高的推荐值,来作为测试的起点,比如说,要是一个体系里面,不同元素给出的推荐值,它们之间差得还挺多的,那就不要按照以往的经验,随随便便地去填一个数值。
2、在做常规计算的时候,要先去做一个阶梯的测试
可以按照那个推荐值、它的一点一倍、一点二倍、一点三倍,这样一步一步地去测试,在INCAR文件里真正去写的时候,就把这几组不同的数值都给填进去,计算的时候,其他的参数全都保持不动,只是去单独地改变这一个参数。
3、根据你要计算的目标性质,来决定需要达到的精度
要是你只是想去做一个结构的初步优化,那收敛的标准,是可以稍微放宽一点的;可要是你的目标是去比较两个构型在能量上的微小差别、算吸附能、算缺陷的形成能、弹性常数,或者是跟声子有关的性质,那标准就要收得更紧一些,对于那些能量差别非常小的体系,这个参数不能仅仅只是满足于能把任务给跑完。
4、在同一组的对比计算里面,这个参数必须要保持一致
无论是在同一篇论文里面,还是在同一个项目的计算里面,像基态、缺陷、吸附、掺杂,还有不同相结构的这些计算,它们所使用的这个参数,都必须是统一的,不然的话,计算出来的能量变化里面,就会混进去因为基组不同而带来的误差,到了后面,再去解释那些结果,就会变得非常麻烦了。
二、能量截断提高后结果会变化多少
把这个参数提高之后,结果变化的幅度,它是没有一个固定的标准答案的,一般来说,在截断还比较低的那个区间,变化会是非常明显的,等到快接近收敛的时候,变化就会慢慢地变小,但同时,计算量也会跟着往上涨。
1、总能量这个量,在一开始的时候会变化得很明显
当从一个比较低的截断值,给升高到靠近推荐值的附近时,计算出来的总能量,有可能会发生一个比较明显的变化,如果继续再往高里提,等看到每个原子的能量差,已经小到了一个可以被接受的程度,那对于常规的能量比较来说,通常就可以认为是可以接受的了,要是你正在做的,是对相稳定性的高精度比较,那还可以把标准再收得更严一点。
2、受力和应力,也要去检查一下
做结构优化的时候,不能只是盯着总能量这一个结果去看,当你把这个参数改变了之后,原子上面受到的力、优化出来的晶格常数,还有体系的应力,这些东西也是有可能跟着发生变化的,要是发现参数提高以后,受力那一项的变化还是那么的明显,那就说明当前的截断还不太稳,尤其是那些体系里面含着轻元素、用了比较硬的赝势,或者是在高压的环境下,这个时候就更加要小心一点。
3、两个状态之间的相对能量,要比它们各自的绝对能量更重要
在很多的研究里面,大家真正关心的,其实是两个不同构型之间的那个能量差,在做测试的时候,可以把同一套结构,放到不同大小的截断能下面,全都去跑上一遍,然后去看一看,算出来的吸附能、形成能,或者是两个构型之间的相对能量,是不是已经稳定下来了,如果只是单单盯着其中一个输出文件里面的绝对总能量去看,那个判断是不够稳当的。
4、计算的成本,也会跟着同步地往上涨
把这个参数的数值给提高,是会直接增加计算中用到的平面波数量的,然后,计算所花的时间,还有占用的内存,也全都会跟着涨上去,在继续加大截断以后,要是发现能量差、受力,还有你关心的那些性质的变化,都已经非常小了,那就没有必要再去盲目地把它给加大了。
三、能量截断的收敛测试要怎么做
在做收敛测试的时候,一定要把变量给控制住,只是去单独地改变这一个参数,其他的那些设置,可不要跟着手痒去乱动。
1、先把结构和K点网格给固定下来
去选一个比较有代表性的结构,然后把K点网格、赝势的种类、泛函的形式、展宽的方法、展宽的宽度,还有能量收敛的标准,这些全都给固定好,千万不要一边在改着这个截断能,一边又顺手去把K点网格也给改了,不然的话,你根本就看不出结果的变动,到底是从哪里来的。
2、连续地去设置好几组不同大小的参数
从POTCAR文件给出的那个推荐值附近开始,去设置个四到六组不同大小的数值,每一组,都去做一个静态的计算,或者是跑一个很短的结构优化,然后把得到的总能量、平均到每个原子上的能量、受力、应力,还有跑这一趟所花的时间,全都给记录下来。
3、把得到的结果,整理成一张收敛的表格
这张表格里面,可以把设置的参数值、算出来的总能量、相邻两档之间的差值、平均到每个原子上的差值、受力的变化,还有计算的时间,都给填进去,当你看到,相邻两档之间的变化,已经小于你的项目所要求的标准了,那就可以去选当前的这一档,或者是稍微再高那么一点的数值,来作为你后面正式计算用的那个参数。
4、把做出这个选择的理由,给写到计算的记录里面去
在正式开始大规模计算之前,要记得把用来测试的那个结构、参数所取的范围、判断收敛的标准,还有最后选定的这个数值,都一并给记录下来,这样,到了后面要投稿、要复现结果,或者是跟组里的人交接工作的时候,就不需要再去重新解释一遍,当初为什么要取这么一个值了。
总结
关于VASP的能量截断到底该取多大,还有把它提高以后结果又会变化多少,一种比较稳妥的做法,是从POTCAR文件里的那个推荐值出发,然后通过一步一步阶梯式的测试,去确认它是不是已经收敛了,当把这个参数提高以后,总能量、受力、应力,还有相对的能量,这些都有可能跟着发生变化,等到变化已经变得很小,并且达到了你的项目所要求的那个精度以后,再去把正式要用的那个参数给定下来,不要只是去照抄一个孤零零的数值,自己亲手做过的收敛测试,才是那个更靠得住的依据。