关于scf中的EDIFF和EDIFFG


主要参考文章:《VASP手册》


对于材料DFT计算来说,在“平面波-贗势”框架下求解KS方程进行SCF自洽计算往往是DFT计算中较为关键的部分。而对于收敛条件的参数设定则会决定体系最终的收敛情况。

所以对于自洽循环以及影响自洽的参数,有必要进行详细的学习。本会主要记录vasp软件中与自洽计算较为相关的几个参数:NSWNEMLEDIFFEDIFFG等。

一、平面波-贗势框架下的自洽运算

首先,放出平面波-贗势框架下自洽计算的流程图:
幻灯片1

由上图可知,对于任何一个材料体系的DFT计算而言,如果没有已知的WAVECARCHCGAR,则计算的第一步通常都是初始化波函数(对应于ISTART=0ISTART-tag)和初始化电子密度(对应于ICHARG=2ICHARG-tag)。由此来进行电子密度和能量本征值的自洽计算。

自洽计算本身又包含了两个循环,分别是电子密度的自洽循环(又称电子步)和体系能量本征值的自洽循环(又称离子步)。而EDIFFEDIFFG就是控制这两个循环的收敛判据(又称收敛精度)。

除了收敛判据之外,我们还需要有两个循环终止条件,来防止程序无法达到收敛精度而无法终止。它们就是NEML(电子步的循环终止参数)和NSW(离子步的循环终止参数),它们分别控制了在一次计算中电子步和离子步所能达到的最大数值。如果达到了这个最大数值,那么无论体系是否达到收敛精度,计算都将终止。

而所谓的进行离子步自洽计算,也就是我们常说的结构弛豫结构优化

二、vsap中自洽运算的参数选择

2.1 自洽运算的精度与上限

根据上文所述,对于自洽顺序我们有两组控制参数:

对于电子步:
NEML:电子自洽循环上限。一般默认为60步。根据vasp手册,如果NEML在40步内无法收敛,则意味着在当前条件下,电子步无法收敛,需要考虑更改其他参数设置(ALOG和)。
EDIFF:电子能量收敛判据。一般默认为^{-4}eV$。根据vasp手册,在大多数情况下不需要调整这个数值。

对于离子步:
NSW:离子自洽循环上限。控制离子步数,一般根据体系的收敛难易进行测试。
EDIFFG:离子能量收敛判据。一般默认为EDIFF*10

这里我们着重讨论EDIFFG参数。

根据手册中提示,EDIFFG参数有正负之分:

EDIFFG>0时,EDIFFG的收敛判据为eV,即以体系本征能量的变化量为判据进行收敛。

EDIFFG<0时,EDIFFG的收敛判据为eV/A,即以作用在每个原子上的力的变化量为判据进行收敛。

网上推荐的EDIFFG参数一般在-0.01 - -0.03之间,根据实际测试,对于作用在每个原子上的力的变化量而言,0.01已经是一个十分小的数值了。

2.2 影响自洽运算的因素

当我们在进行具体实例的计算是,会发现有的时候体系结构难以收敛,有的时候是电子步难以收敛,有的时候是离子步难以收敛,下面分别对这两种情况的影响因素进行介绍

(1)影响电子步自洽计算的因素

对于电子步而言,主要的影响因素有:

  • 初始结构的合理性
  • K点密度的选择(即KPOINT文件)
  • 电子自洽算法的选择(即ALGO参数)
  • 高斯展宽(即SIGMA参数)
  • 是否考虑电子自旋(即ISPIN参数)
  • 电子步收敛判据(即EDIFF参数)

(2)影响离子步自洽计算的因素

对于电子步而言,主要的影响因素有:

  • 初始结构的合理性
  • 离子弛豫算法的选择(即IBRION参数)
  • 离子弛豫步长(即POTIM参数)
  • 离子步收敛判据(即EDIFFG参数)

当我们了解了影响电子步和离子步收敛的主要因素之后,我们就可以对于实际遇到的不收敛问题做出分析和修改。

2.3 实际问题

体系:PZT(10原子体系)
贗势选用:paw_pbe
特别地,对于Pb原子使用了Pb_d贗势

INCAR参数:

1
2
3
4
5
6
7
ENCUT = 500

NEML = 60
EDIFF = 1e-6

NSW = 100
EDIFFG = -0.01

体系难以收敛,OSZICAR如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
       N       E                     dE             d eps       ncg     rms          rms(c)
DAV: 1 0.100318991040E+04 0.10032E+04 -0.44815E+04 65540 0.170E+03
DAV: 2 0.179563280479E+01 -0.10014E+04 -0.95606E+03 74440 0.472E+02
DAV: 3 -0.939316738167E+02 -0.95727E+02 -0.94911E+02106720 0.151E+02
DAV: 4 -0.979965674520E+02 -0.40649E+01 -0.40597E+01 93520 0.262E+01
DAV: 5 -0.981593034907E+02 -0.16274E+00 -0.16273E+00 97140 0.368E+00 0.387E+01
RMM: 6 -0.833502653841E+02 0.14809E+02 -0.69308E+01 76514 0.294E+01 0.177E+01 1 F= -.81451367E+02 E0= -.81446276E+02 d E =-.814514E+02
……
……
RMM: 60 -0.814513670371E+02 0.18433E+00 -0.37091E+01 44901 0.612E+00
1 F= -.81451367E+02 E0= -.81446276E+02 d E =-.814514E+02
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809932659461E+02 0.64243E+00 -0.24251E+01 66220 0.718E+00 0.565E-01
RMM: 2 -0.809907252242E+02 0.25407E-02 -0.12571E-02 74021 0.564E-01 0.228E-01
RMM: 3 -0.809901651992E+02 0.56003E-03 -0.28875E-03 81188 0.320E-01 0.111E-01
RMM: 4 -0.809899729348E+02 0.19226E-03 -0.62768E-04 66613 0.161E-01 0.401E-02
RMM: 5 -0.809899601261E+02 0.12809E-04 -0.16946E-04 45376 0.768E-02
2 F= -.80989960E+02 E0= -.80989960E+02 d E =0.461407E+00
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809900334579E+02 -0.60523E-04 -0.50763E-04 79960 0.181E-01 0.387E-02
RMM: 2 -0.809900233040E+02 0.10154E-04 -0.40056E-05 41361 0.391E-02
3 F= -.80990023E+02 E0= -.80990023E+02 d E =0.461344E+00
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809900842792E+02 -0.50821E-04 -0.25360E-04 85220 0.145E-01 0.297E-02
RMM: 2 -0.809900758249E+02 0.84543E-05 -0.30403E-05 33791 0.361E-02
4 F= -.80990076E+02 E0= -.80990076E+02 d E =0.461291E+00
……
……

……
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809905445426E+02 0.72760E-11 -0.13659E-12 32760 0.471E-11 0.634E-11
RMM: 2 -0.809905445426E+02 0.36380E-11 0.00000E+00 2 0.477E-11
197 F= -.80990545E+02 E0= -.80990545E+02 d E =0.460822E+00
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809905445426E+02 0.16371E-10 -0.12683E-12 32760 0.716E-11 0.721E-11
RMM: 2 -0.809905445426E+02 -0.14552E-10 0.00000E+00 2 0.208E-10
198 F= -.80990545E+02 E0= -.80990545E+02 d E =0.460822E+00
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809905445425E+02 0.54570E-11 -0.18020E-12 32760 0.123E-10 0.567E-11
RMM: 2 -0.809905445426E+02 -0.21828E-10 0.00000E+00 2 0.159E-10
199 F= -.80990545E+02 E0= -.80990545E+02 d E =0.460822E+00
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809905445426E+02 -0.20009E-10 -0.87162E-13 32760 0.123E-10 0.109E-10
RMM: 2 -0.809905445426E+02 0.00000E+00 0.00000E+00 2 0.104E-10
200 F= -.80990545E+02 E0= -.80990545E+02 d E =0.460822E+00

首先,还是复习一下大师兄教程里面的关于OSZICAR各个值含义的理解:


含义
N 代表电子步的迭代步数
E 代表当前电子步的体系能量
dE 该步和上一步体系能量的差值
DAV 对应Blocked-Davidson算法
RMM 对应RMM-DIIS算法
F 体系总能量,对应free energy TOTEN
E0 体系总能量,对应energy(sigma->0)
d E 前后两个离子步的能量差,如果是静态计算则等于entropy*SIGMA
  • 1) d eps the change in the bandstructure energy;本征值的变化
  • 2) ncg the number of evaluations of theHamiltonian acting onto a wavefunction;波函数的优化次数
  • 3) rms the norm of the residuum of the trialwavefunctions (i.e. their approximate error)
  • 4) rms(c) the difference between input andoutput charge density

针对这份OSZICAR,我们分段分析,可以发现三个问题:

(1)第1个离子步

1
2
3
4
5
6
7
8
9
10
       N       E                     dE             d eps       ncg     rms          rms(c)
DAV: 1 0.100318991040E+04 0.10032E+04 -0.44815E+04 65540 0.170E+03
DAV: 2 0.179563280479E+01 -0.10014E+04 -0.95606E+03 74440 0.472E+02
DAV: 3 -0.939316738167E+02 -0.95727E+02 -0.94911E+02106720 0.151E+02
DAV: 4 -0.979965674520E+02 -0.40649E+01 -0.40597E+01 93520 0.262E+01
DAV: 5 -0.981593034907E+02 -0.16274E+00 -0.16273E+00 97140 0.368E+00 0.387E+01
RMM: 6 -0.833502653841E+02 0.14809E+02 -0.69308E+01 76514 0.294E+01 0.177E+01 1 F= -.81451367E+02 E0= -.81446276E+02 d E =-.814514E+02
……
RMM: 60 -0.814513670371E+02 0.18433E+00 -0.37091E+01 44901 0.612E+00
1 F= -.81451367E+02 E0= -.81446276E+02 d E =-.814514E+02

第一个离子步中,电子进行了60次自洽运算,还未达到EDIFF=1e-4的收敛精度要求,跳出第一个离子步;

此处还并未发现有什么问题。

(2)第2-5个离子步

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
       N       E                     dE             d eps       ncg     rms          rms(c)
DAV: 1 -0.809932659461E+02 0.64243E+00 -0.24251E+01 66220 0.718E+00 0.565E-01
RMM: 2 -0.809907252242E+02 0.25407E-02 -0.12571E-02 74021 0.564E-01 0.228E-01
RMM: 3 -0.809901651992E+02 0.56003E-03 -0.28875E-03 81188 0.320E-01 0.111E-01
RMM: 4 -0.809899729348E+02 0.19226E-03 -0.62768E-04 66613 0.161E-01 0.401E-02
RMM: 5 -0.809899601261E+02 0.12809E-04 -0.16946E-04 45376 0.768E-02
2 F= -.80989960E+02 E0= -.80989960E+02 d E =0.461407E+00
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809900334579E+02 -0.60523E-04 -0.50763E-04 79960 0.181E-01 0.387E-02
RMM: 2 -0.809900233040E+02 0.10154E-04 -0.40056E-05 41361 0.391E-02
3 F= -.80990023E+02 E0= -.80990023E+02 d E =0.461344E+00
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809900842792E+02 -0.50821E-04 -0.25360E-04 85220 0.145E-01 0.297E-02
RMM: 2 -0.809900758249E+02 0.84543E-05 -0.30403E-05 33791 0.361E-02
4 F= -.80990076E+02 E0= -.80990076E+02 d E =0.461291E+00

从第2个离子步开始,电子自洽仅用少量的步骤即达到了对应地电子步精度(见dE列)。
开始进入离子步的自洽循环,以达到离子步自洽收敛的精度要求EDIFFG=-0.01

此处我们可以得出的结论是,对于该体系,NEML的值完全可以更小一些,即不需要在第一个离子步上浪费太多时间,因为第一个离子步是用非常笼统的方式“猜“出来的(电子密度是每个原子电荷密度的叠加),并没有太多的实际意义。

(3)第197-200离子步

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   N       E                     dE             d eps       ncg     rms          rms(c)
DAV: 1 -0.809905445426E+02 0.72760E-11 -0.13659E-12 32760 0.471E-11 0.634E-11
RMM: 2 -0.809905445426E+02 0.36380E-11 0.00000E+00 2 0.477E-11
197 F= -.80990545E+02 E0= -.80990545E+02 d E =0.460822E+00
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809905445426E+02 0.16371E-10 -0.12683E-12 32760 0.716E-11 0.721E-11
RMM: 2 -0.809905445426E+02 -0.14552E-10 0.00000E+00 2 0.208E-10
198 F= -.80990545E+02 E0= -.80990545E+02 d E =0.460822E+00
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809905445425E+02 0.54570E-11 -0.18020E-12 32760 0.123E-10 0.567E-11
RMM: 2 -0.809905445426E+02 -0.21828E-10 0.00000E+00 2 0.159E-10
199 F= -.80990545E+02 E0= -.80990545E+02 d E =0.460822E+00
N E dE d eps ncg rms rms(c)
DAV: 1 -0.809905445426E+02 -0.20009E-10 -0.87162E-13 32760 0.123E-10 0.109E-10
RMM: 2 -0.809905445426E+02 0.00000E+00 0.00000E+00 2 0.104E-10
200 F= -.80990545E+02 E0= -.80990545E+02 d E =0.460822E+00

体系直到离子步的运算上限200次才最终停止。但我们后面的每个离子步基本都仅算了2次,并且离子步提示的能量差已经非常小了——1e-10量级,这意味着从能量角度来看,体系应该已经十分稳定了。但是之所以还未收敛,是因为INCAR中使用了 EDIFFG = -0.01的判据,即使用力的收敛要求作为判据。

关于力的收敛情况,则需要从OUTCAR中的 TOTAL-FORCE列表中进行查看。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 POSITION                                       TOTAL-FORCE (eV/Angst)
-----------------------------------------------------------------------------------
0.00000 0.00000 0.00000 0.000000 -0.000000 0.146081
-0.00000 0.00000 4.37912 0.000000 -0.000000 0.227785
2.01765 2.01765 7.89482 0.000000 -0.000000 0.193220
2.01765 2.01765 3.97674 0.000000 0.000000 0.220559
2.01765 -0.00000 5.90934 0.000000 -0.000000 -0.065249
0.00000 2.01765 5.90934 0.000000 -0.000000 -0.065249
2.01765 -0.00000 1.60127 -0.000000 -0.000000 -0.069817
0.00000 2.01765 1.60127 -0.000000 -0.000000 -0.069817
2.01765 2.01765 6.12251 0.000000 -0.000000 -0.228700
2.01765 2.01765 2.01192 0.000000 0.000000 -0.288814
-----------------------------------------------------------------------------------
total drift: 0.000000 0.000000 0.048019

注意列表中的TOTAL-FORCE项,我们把它单独列出来:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
TOTAL-FORCE (eV/Angst)
------------------------------------
0.000000 -0.000000 0.146081
0.000000 -0.000000 0.227785
0.000000 -0.000000 0.193220
0.000000 0.000000 0.220559
0.000000 -0.000000 -0.065249
0.000000 -0.000000 -0.065249
0.000000 -0.000000 -0.069817
0.000000 -0.000000 -0.069817
0.000000 -0.000000 -0.228700
0.000000 0.000000 -0.288814
------------------------------------
0.000000 0.000000 0.048019

可以发现作用在每个原子上的仍然大于收敛条件0.01,而如果检查前几个离子步骤中受力情况则会发现,大概在第30个离子步左右,受力就已经收敛不再变化了。

对此我们可以得到的结论就是,在此参数下,该体系已经达到了收敛极限,但是该收敛极限仍然难以满足收敛精度的要求。


在本算例中,我们还会发现,每个离子步对应地d E值并不等于当前离子步上个离子步之间的能量差,而是等于当前离子步第一个离子步之间的能量差,这似乎和手册中的解释并不一致。


2.4 总结

综上所述,我们可以得出结论:

1.该体系现有参数对于离子步的收敛精度要求过高,可以将负的EDIFFG适当调大,或者干脆使用正值。

2.根据TOTAL-FORCE表格中的提示,作用在原子上的力变化较大,可以考虑更换收敛算法,或者减少收敛步长。)