偶极校正

功函数定义为

$E_F=E_{vac}-E_{fermi}$

因 VASP 所适用的体系是周期性体系,使用它来模拟实验中的 Slab 模型时会取一个相当大的真空层来隔绝相邻两个周期中 Slab 的相互作用。理想情况下,真空层中的功函数应当是一条水平的直线(函数值为定值)。但如果表面的两侧并非对称,即其中一侧吸附了分子时, 这两侧的功函数存在差异,此时如果不进行偶极校正,真空中的功函数会是一条斜线;而经过偶极校正后,功函数会出现一个阶梯,阶梯两侧附近的曲接近水平

Because of the system applicable to VASP is a periodic system, a relatively large vacuum layer is used to isolate the interaction between the slabs in two periods when simulation s Slab model in experiments.

VASP 中直接使用 LDIPOLIDPOL 即可开启它的偶极校正功能

  • LDIPOL = .TRUE. 表示打开偶极校正
  • IDIPOL = 3 表示偶极校正方向为第三晶格矢
  • DIPOL = <3 float values> 表示体系的中心,以分数坐标表示

一般来说 DIPOL 不用填,VASP 手册 中有:

If the flag is not set, VASP determines, where the charge density averaged over one plane drops to a minimum and calculates the center of the charge distribution by adding half of the lattice vector perpendicular to the plane where the charge density has a minimum (this is a rather reliable approach for orthorhombic cells).

若体系难以收敛可手动计算原子坐标平均值并设置DIPOL = 0.5 0.5 <z averaged z>,若修正效果不到预期可以:

  1. 打开偶极校正并设置上述DIPOL = 0.5 0.5 <z averaged>进行弛豫计算
  2. 关闭DIPOL,再次进行弛豫计算
  3. 关闭DIPOL,打开LVHAR = .TRUE.进去静态计算得到功函数

若出现功函数台阶即为计算成功

如果计算失败请检查POSCAR中晶格基矢对应分量是否为0。如计算第三个方向偶极修正请保证前两个基矢的z分量为零且第三个基矢只有z分量不为零。

静电势计算

VASP 中可使用 LVHAR参数进行功函数计算控制,输出文件中LOCPOT就是我们想要的静电势贡献,格式和CHGCAR一样,需计算Z方向的平均贡献

真空能级在打开LVHAR时可能去读取OUTCAR直接得到

1
2
grep vacuum OUTCAR
# vacuum level on the upper side and lower side of the slab 2.807 3.188

注意OUTCAR中的真空能级需进行费米能级修正,即减去OUTCAR中的E-fremi

参考

杂化泛函理论计算

杂化泛函通过将不同的泛函通过一定系数相加得到更接近于实际值的估测
杂化泛函能够更好的描述电子自相互作用比较严重的体系,并且可以通过改变线性组合系数来调节HF交换泛函与DFT交换泛函的比例,使得计算结果更为精确,更加的接近实验的真实结果

杂化泛函在VASP中的的种类有HSE06PBE0B3LYP,等不同类型,通过参数调整实现不同类型的杂化泛函计算

HSE06泛函交换关联公式为 $$E_{XC}^{HES} = a E_x^{HF,SR}(\omega) + (1-a) E_x^{\omega PBE,SR}(\omega) + E_x^{\omega PBE,LR}(\mu) + E_c^{PBE}$$ 其中 $E_x^{HF,SR}$为 HF 交换项
$E_x^{\omega PBE, SR}$为 HF 交换项
$E_x^{\omega PBE, LR}$为 PBE 的短程和长程交换项,
$E_x^{\omega PBE, SR}$$E_x^{HF,SR} $的系数和为1
$E_c^{PBE}$为 PBE 的库伦相关项

HSE06泛函: $a=0.25, \omega=0.2$
HSE03泛函: $a=0.25, \omega=0.3$
HSE0泛函: $a=0.25, \omega \to 0$
PBE泛函: $a=0, \omega \to \infty$

VASP中通过LHFCALC参数控制是否使用杂化泛函计算,参数HFSCREEN控制泛函种类,一般通过使用Damped算法加快计算

VASP相关参数细节

HSE06

1
2
3
4
LHFCALC = .TRUE.
GGA = PE
HFSCREEN = 0.2
ALGO = Damped; TIME = 0.4

with the default values AEXX=0.25, AGGAX=1-AEXX=0.75, AGGAC=1.0 and ALDAC=1.0, and using the PBE POTCAR files

HSE03

1
2
3
4
LHFCALC = .TRUE.
GGA = PE
HFSCREEN = 0.3
ALGO=Damped; TIME = 0.4

with the default values AEXX=0.25, AGGAX=1-AEXX=0.75, AGGAC=1.0 and ALDAC=1.0, and using the PBE POTCAR files.

HSEsol

1
2
3
LHFCALC = .TRUE.
GGA = PS
HFSCREEN = 0.2

with the default values AEXX=0.25, AGGAX=1-AEXX=0.75, AGGAC=1.0 and ALDAC=1.0, and using the PBE POTCAR files.

PBEh(PBE0)

1
2
3
4
LHFCALC = .TRUE.
GGA = PE
ALGO=Damped
TIME = 0.4

with the default values AEXX=0.25, AGGAX=1-AEXX=0.75, AGGAC=1.0 and ALDAC=1.0, and using the PBE POTCAR files.

B3LYP with VWN3(or VWN5) for LDA correlation

1
2
3
4
5
6
7
8
LHFCALC = .TRUE.
GGA = B3 (or B5)
AEXX = 0.2
AGGAX = 0.72
AGGAC = 0.81
ALDAC = 0.19
ALGO = Damped
TIME = 0.4

and using the PBE POTCAR files.

B3-WC(using Libxc, see the tag LIBSC1)

1
2
3
4
LHFCALC = .TRUE.
GGA = LIBXC
LIBXC1 = 412 (or HYB_GGA_XC_B1WC)
AEXX = 0.16

and using the PBE POTCAR files.

Hartree-Fock

1
2
3
4
LHFCALC = .TRUE.
AEXX = 1.0
ALDAC = 0.0
AGGAC = 0.0

with the default values AGGAX=1-AEXX=0.0, and using the PBE POTCAR files.

计算步骤

gamma-scf单点自洽KPOINTS样例(二维结构)

1
2
3
4
5
Auto generation
0
G
13 13 0
0 0 0

将pbe计算的能带OUTCAR得到k点的权重改成0接到自洽计算的IBZKPT后边,再将IBZKPT第二行的数改为总行数作为HSE-band计算的KPOINTS

用pbe自洽计算使用的KPOINTS文件和pbe自洽产生的CHG CHGCAR WAVECAR进行HSE自洽计算

将HSE自洽产生的CHG CHGAR WAVECAR和通修改IBZKPT得到的KPOINTS作为输入文件进行HSE-band计算

参考1
参考2
参考3
参考4

vdW修正

多数传统的交换相关泛函,诸如B3LYP,由于相关势的长程行为不对,完全不能描述色散作用。因此用于研究色散作用主导的问题结果差得一塌糊涂,比如物理吸附、长链烷烃之类的大分子构象、弱极性分子团簇等等。解决密度泛函对色散作用描述能力很差的最有效的方法就是引入经验的色散校正项
参数选择取决于具体计算体系

VASP中通过IVDW参数控制vdw修正算法

参数 描述 可用版本
IVDW=0 no dispersion correction (default)
IVDW=1 10 DFT-D2 method of Grimme
IVDW=11 DFT-D3 method of Grimme with zero-damping function (available as of VASP.5.3.4)
IVDW=12 DFT-D3 method with Becke-Johnson damping function (available as of VASP.5.3.4)
IVDW=13 DFT-D4 method (available as of VASP.6.2 as external package)
IVDW=2 20 Tkatchenko-Scheffler method
IVDW=21 Tkatchenko-Scheffler method with iterative Hirshfeld partitioning (available as of VASP.5.3.5)
IVDW=202 Many-body dispersion energy method (MBD@rSC) (available as of VASP.5.4.1)
IVDW=263 Many-body dispersion energy with fractionally ionic model for polarizability method (MBD@rSC/FI) (available as of VASP.6.1.0)
IVDW=4 dDsC dispersion correction method (available as of VASP.5.4.1)

计算SOC修正 自旋轨道耦合修正

在计算不对称极化体系或外加电场体系时由于电场与体系中运动磁矩(可以认为是电子自旋磁矩)的耦合产生新的相互作用从而引入自旋轨道耦合效应修正

VASP中通过参数LSORBIT打开SOC修正,通过SAXIS参数设置自旋方向,磁性计算中通过参数MAGMOM设置初始磁矩,如POSCAR中含有原子Ni C H O各有56 17 20 6个,可设置MAGMOM = 56*1 17*0 20*0 6*0

两种设置方法

1
2
3
LSORBIT = .TRUE.
MAGMOM = x y z # local magnetic moment in x,y,z
SAXIS = 0 0 1 # quantisation axis parallel to z
1
2
3
LSORBIT = .TRUE.
MAGMOM = 0 0 total_magnetic_moment # local magnetic moment parallel to SAXIS
SAXIS = x y z # quantization axis parallel to vector (x,y,z)

一般第二种更精确

这样设置通常会有对称性报错,可设置ISYM = 0
使用vasp_ncl程序计算,记得在作业脚本中修改

HSE06+SOC计算步骤

A example in vaspkit

  1. DFT+SOC band structure calculation

Step-I: DFT SCF calculation with SOC (INCAR):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
System=XXX
ISTART=0
ICHARG=2
ENCUT=400
EDIFF=1E-6
NELM=300
ISMEAR=-5
#SIGMA=0.05
IALGO=38
#LREAL=Auto

#SOC-related:
LSORBIT=.TRUE.
SAXIS= 0 0 1
ISYM=0

Step-II: DFT band calculation with SOC (INCAR):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
System=XXX
ISTART=0
ICHARG=11
ENCUT=400
EDIFF=1E-6
NELM=300
ISMEAR=0
SIGMA=0.05
IALGO=38
LREAL=.FALSE.

#SOC-related:
LSORBIT=.TRUE.
SAXIS= 0 0 1
ISYM=0
  1. HSE06+SOC band structure calculation

Step-I: HSE06 SCF calculation with SOC (INCAR):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
System=XXX
#ISTART=0
#ICHARG=2
ENCUT=400
EDIFF=1E-6
NELM=120
ISMEAR=0
SIGMA=0.05
#IALGO=38
#LREAL=.FALSE.

#SOC-related:
LSORBIT=.TRUE.
SAXIS= 0 0 1
ISYM=0

#HSE06-related:
LHFCALC = .TRUE.
HFSCREEN = 0.2
ALGO = Damped #Damped/Normal/All
TIME = 0.4

Step-II: HSE06 NSCF calculation with SOC:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
System=XXX
#ISTART=0
#ICHARG=2
ENCUT=400
EDIFF=1E-6
NELM=300
ISMEAR=0
SIGMA=0.05
#IALGO=38
#LREAL=.FALSE.

#SOC-related:
LSORBIT=.TRUE.
SAXIS= 0 0 1
ISYM=0

#HSE06 related:
LHFCALC = .TRUE.
HFSCREEN = 0.2
ALGO = Normal #use Normal
TIME = 0.4