VASP中杂化泛函计算参数设置

本文章为原创,版权归作者刘锦程所有,文章转载请先取得作者的同意,非常欢迎转发文章链接!严禁以任何方式挪用本文内容,用于以盈利为目的各种活动。

HSE06在纯泛函的交换相关势中掺入了HF成分,改善了电子相关的描述,对于局域电子性质计算明显改善,尤其对于过渡金属化合物的能带的计算,HSE比PBE明显好。HSE泛函的交换相关能如下:

$$
\begin{aligned} E_{\mathrm{xc}}^{\mathrm{HSE}}=& a E_{x}^{\mathrm{HF}, \mathrm{SR}}(\omega)+(1-a) E_{x}^{\omega \mathrm{PBE}, \mathrm{SR}}(\omega) + E_{x}^{\omega \mathrm{PBE}, \mathrm{LR}}(\omega)+E_{c}^{\mathrm{PBE}} \end{aligned}
$$
$E_{x}^{\mathrm{HF}, \mathrm{SR}}$ 是短程的HF交换项,

$E_{\mathrm{x}}^{\omega \mathrm{PBE}, \mathrm{SR}} \text { and } E_{\mathrm{x}}^{\omega \mathrm{PBE}, \mathrm{LR}}$ 是PBE的短程和长程交换项,其中$E_{\mathrm{X}}^{\omega \mathrm{PBE}, \mathrm{SR}}$ 和 $E_{x}^{\mathrm{HF}, \mathrm{SR}}$ 的加和等于1。a是HF的成分比例。$\omega$是splitting parameter也称为range-separation parameter,库伦屏蔽参数。$E_{c}^{\mathrm{PBE}}$ 是PBE的库伦相关项。

HSE06泛函: a=0.25,$\omega$=0.2,

HSE03泛函: a=0.25,$\omega$=0.3,

PBE0泛函: a=0.25,$\omega$ -> 0,

PBE泛函:a=0,$\omega$ -> $\infinite$,

HSE06计算需要添加的参数如下:

1
2
3
4
LHFCALC = .TRUE. ; HFSCREEN = 0.2
ALGO = Damped ; TIME = 0.4
# PRECFOCK = Fast ! used PRECFOCK = Normal for high quality calculations
# NKRED = 2 ! omit flag for high quality calculations

HSE03计算需要添加的参数如下:

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

PBE0计算需要添加的参数如下:

1
2
LHFCALC = .TRUE.
ALGO = Damped ; TIME = 0.4

B3LYP计算需要添加的参数如下:

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

Hartree-Fock计算需要添加的参数如下:

1
2
3
4
5
LHFCALC = .TRUE. 
AEXX = 1.0
ALDAC = 0.0
AGGAC = 0.0
ALGO = Damped ; TIME = 0.4

LHFCALC控制是否做杂化泛函计算。

AEXX是交换泛函中的HF的成分,对于HSE取0.25。虽然调整这个值可以调节带隙的大小,但是这种做法调准一个材料的能带,对另外一条能带的误差可能就更大了,调了这个参数使用的杂化泛函就不叫HSE了,所以,为了保证计算的重现性和参数的统一性,这个值也不建议调整。

HFSCREEN控制$\omega$,range-separation parameter,这个参数界定了库伦作用的截断半径。( https://cms.mpi.univie.ac.at/wiki/index.php/Hartree-Fock_and_HF/DFT_hybrid_functionals#range_separated

ALGO控制SCF收敛算法,由于杂化泛函比较难收敛,所以用ALGO = Damped 或 ALL。

TIME是ALGO为Damped 或 ALL, SCF电子步演化时候用到的step size in the trial step。默认是0.4,不建议修改。

另外杂化泛函计算需要用专门为杂化泛函准备的对称性算法: ISYM = 3,这个开启了LHFCALC就默认是3了,所以也不需要手动设置。

综上一般HSE06的计算输入文件可以写为:

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
##### initial I/O #####
SYSTEM = Hybird Functional
# KPAR = 4
NCORE = 5
ISTART = 1
ICHARG = 1
LWAVE = .TRUE.
LCHARG = .TRUE.
LVTOT = .FALSE.
LVHAR = .FALSE.
LELF = .FALSE.
LORBIT = 11
NEDOS = 1000

##### SCF #####
ENCUT = 500
ISMEAR = 0
SIGMA = 0.05
EDIFF = 1E-6
NELMIN = 5
NELM = 300
GGA = PE
LREAL = .FALSE.
# PREC = Accurate
# ISYM = 3

##### Geo opt #####
EDIFFG = -0.01
IBRION = 2
POTIM = 0.2
NSW = 0 # no Geo_opt
ISIF = 3 # 2 not optimize cell

#### HSE ####
LHFCALC = .TRUE.
AEXX = 0.25
HFSCREEN = 0.2
ALGO = ALL # or Damped
TIME = 0.4

其他参数:

AGGAX = 1.0-AEXX,交换泛函中的GGA的成分

AGGAC = 1.0,相关泛函中的GGA的成分

ALDAC = 1.0 ,相关泛函中的LDA的成分

手册建议也可以用blocked-Davidson algorithm (ALGO = Normal) by combination with straight mixing or a Kerker like mixing (IMIX = 1), 逐渐的减小a,直到收敛。

1
LHFCALC = .TRUE. ; ALGO = Normal ; IMIX = 1 ; AMIX = a

NKRED = [integer], 可以控制在计算HF部分的时候把,K点的数量削减NKRED倍。具体可看( https://cms.mpi.univie.ac.at/vasp/vasp/When_NKRED_should_not_be_applied.html )如果计算提示internal error in FOCK_ACC: number of k-points incorrect,检查K点是否可以被NKRED整除。NKRED关键词可以加速计算,但是牺牲精度,尤其对金属体系官网不建议用NKRED。In metallic systems, NKRED must be used with great care, and results might be wrong, if NKRED is applied。

PRECFOCK控制计算交换部分的FFT的格点精确度,默认是PRECFOCK = Normal,为了加速计算可以考虑牺牲一点精度,把这个参数调成Fast。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。