Vaspkit做杂化泛函能带计算方法

  1. 以下为VASPKIT手册上的详细步骤:
    1. Example: single layer MoS2
  2. 3.4 Post-process Band Structure (hybrid functional)

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

VASP纯泛函能带计算思路

(1)在布里渊区撒点K-mesh做自洽计算得到CHGCAR文件;

(2)读取上一步的CHGCAR(ICHARG = 11), 用line-mode形式的K-path, 用VASPKIT 303生成KPOINTS,,做非自恰计算(电荷密度保持不变),得到line-mode上的每个K点的能级,从而得到能带。

VASP计算杂化泛函的能带,不能直接读取纯泛函的CHGCAR文件做非自恰计算,所以不能直接用line-mode的KPOINTS。计算思路如下:

(1)用VASPKIT303251产生KPOINTS文件,同时包含布里渊区撒点的K点K-mesh和高对称点连线K-pathK-mesh使用正常的权重,K-path使用0权重。

(2)(可省略)用纯泛函(比如PBE)基于(1)KPOINTS文件做自洽计算,产生WAVECAR文件用于加速下一步杂化泛函计算的收敛。

(3)用杂化泛函(比如HSE06)基于(1)KPOINTS文件做自洽计算,直接得到每个K-path上每个0权重的K点的能级信息,从而得到能带信息。

以下为VASPKIT手册上的详细步骤:

Besides the line-mode K-path, VASPKIT can also generate K-path with uniformed spacing between K points in units of 2$\pi$*Å-1, which can be used for hybrid functional band structure calculations. Such KPOINTS file contains two parts. First part is same as the self-consistent calculation with symmetry weighted K-points in Irreducilbe Brillouin Zone. And Second part is the 0-weighted K-points alone the k-path. To generate this KPOINTS file:

(1) Same as pure functional calculation. Do geometry optimization. Run 302 (for 2D materials) or 303 (for 3D materials) to get:

  1. standardized primitive cell (PRIMCELL.vasp)
  2. line-mode k-path for pure functional band structure calculation (KPATH.in)
  3. High-symmetry points in fractional coordinates. (HIGH_SYMMETRY_POINTS) You can check them with the seekpath database [https://www.materialscloud.org/work/tools/seekpath].

(2) Run 251 to generate KPOINTS file for hybrid functional band-structure calculations. Input the KPT resolution values to determine density of k-mesh for SCF calculation and k-path for band structure calculation. Then VASPKIT will read KPATH.in file and generate the KPOINTS file for hybrid functional band-structure calculation.

(3) Optional. Do a PBE SCF calculations based on the new generated KPOINTS file and get the wavefunctions, which can be read for next step hybrid functional calculation. Sometimes, this step reduce the SCF time of the next step hybrid functional calculation.

(4) Do hybrid functional band structure calculation.

Example: single layer MoS2

(1) After optimization. Run 302

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
302
+-------------------------- Warm Tips --------------------------+
See An Example in VASPKIT/examples/seek_kpath/graphene_2D.
This feature is still experimental & check the PRIMCELL.vasp file.
+---------------------------------------------------------------+
-->> (1) Reading Structural Parameters from POSCAR File...
+-------------------------- Summary ----------------------------+
The vacuum slab is supposed to be along c axis
Prototype: AB2
Total Atoms in Input Cell: 3
Lattice Constants in Input Cell: 3.184 3.184 18.410
Lattice Angles in Input Cell: 90.000 90.000 120.000
Total Atoms in Primitive Cell: 3
Lattice Constants in Primitive Cell: 3.184 3.184 18.410
Lattice Angles in Primitive Cell: 90.000 90.000 120.000
2D Bravais Lattice: Hexagonal
Space Group: 187
Point Group: 26 [ D3h ]
International: P-6m2
Symmetry Operations: 12
Suggested K-Path: (shown in the next line)
[ GAMMA-M-K-GAMMA ]
+---------------------------------------------------------------+
-->> (2) Written PRIMCELL.vasp file.
-->> (3) Written KPATH.in File for Band-Structure Calculation.
-->> (4) Written HIGH_SYMMETRY_POINTS File for Reference.

Replace the old POSCAR by the new generated PRIMCELL.vasp: cp PRIMCELL.vasp POSCAR

1
2
3
4
5
6
7
8
9
10
11
Primitive Cell
1.000000
3.18401832481292 0.00000000000000 0.00000000000000
-1.59200916240646 2.75744075540316 0.00000000000000
0.00000000000000 0.00000000000000 18.40999984740000
S Mo
2 1
DIRECT
0.0000000000000000 0.0000000000000000 0.4151505217091287 S1
0.0000000000000000 0.0000000000000000 0.5848494782908713 S2
0.6666666666666666 0.3333333333333333 0.5000000000000000 Mo1

KPATH.in is line-mode KPOINTS file:

1
2
3
4
5
6
7
8
9
10
11
12
K-Path Generated by VASPKIT.
20
Line-Mode
Reciprocal
0.0000000000 0.0000000000 0.0000000000 GAMMA
0.5000000000 0.0000000000 0.0000000000 M

0.5000000000 0.0000000000 0.0000000000 M
0.3333333333 0.3333333333 0.0000000000 K

0.3333333333 0.3333333333 0.0000000000 K
0.0000000000 0.0000000000 0.0000000000 GAMMA

(2) Run 251 to generate KPOINTS file for hybrid functional band-structure calculations. Select (1) Monkhorst-Pack Scheme or (2) Gamma Scheme to generate k-mesh for SCF calculation.

Then input the resolution value of normal weighted K-Mesh and 0-weighted K-path, respectively. VASPKIT will write a new KPOINTS according to users’ input.

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
251
-->> (1) Reading Structural Parameters from POSCAR File...
======================= K-Mesh Scheme ==========================
1) Monkhorst-Pack Scheme
2) Gamma Scheme

0) Quit
9) Back
------------->>
2
+-------------------------- Warm Tips --------------------------+
Input Resolution Value to Determine K-Mesh for SCF Calculation:
(Typical Value: 0.03-0.04 is Generally Precise Enough)
------------>>
0.05
Input Resolution Value along K-Path for Band Calculation:
(Typical Value: 0.02-0.04 for DFT and 0.04-0.06 for hybrid DFT)
------------>>
0.05
+---------------------------------------------------------------+
-->> (2) Reading K-Paths From KPATH.in File...
+-------------------------- Summary ----------------------------+
K-Mesh for SCF Calculation: 7 7 1
The Number of K-Point along K-Path 1: 22
The Number of K-Point along K-Path 2: 13
The Number of K-Point along K-Path 3: 26
+---------------------------------------------------------------+
-->> (3) Written KPOINTS File!

Here, the resolution value of normal weighted K-Mesh and 0-weighted K-path is set to be 0.05. Output K-mesh for SCF Calculation: 7 7 1. And the number of k-points along each line of k-path: $\Gamma$-> M : 22, M -> K : 13, K -> $\Gamma$ : 26. The KPOINTS file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Parameters to Generate KPOINTS (Don't Edit This Line):   0.050  0.050    8   61   3  22  13  26
69
Reciprocal lattice
0.00000000000000 0.00000000000000 0.00000000000000 1
0.14285714285714 0.00000000000000 0.00000000000000 6
0.28571428571429 0.00000000000000 0.00000000000000 6
0.42857142857143 0.00000000000000 0.00000000000000 6
0.14285714285714 0.14285714285714 0.00000000000000 6
0.28571428571429 0.14285714285714 0.00000000000000 12
0.42857142857143 0.14285714285714 0.00000000000000 6
0.28571428571429 0.28571428571429 0.00000000000000 6
0.00000000000000 0.00000000000000 0.00000000000000 0
0.02380952380952 0.00000000000000 0.00000000000000 0
...
...
...
0.02666666666400 0.02666666666400 0.00000000000000 0
0.01333333333200 0.01333333333200 0.00000000000000 0
0.00000000000000 0.00000000000000 0.00000000000000 0

(3) Do PBE calculation. Can be skip.

(4) Do hybird functional band structure calculation. The detail of INCAR parameters are discussed in http://blog.wangruixing.cn/2019/05/20/hse/ , INCAR:

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
##### initial I/O #####
SYSTEM = Hybird Functional
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

3.4 Post-process Band Structure (hybrid functional)

(5) Extract band structure information by 252. band data is saved in BAND.dat and BAND-REFORMATTED.dat files. High-symmetry points positions on band structure figures are saved in KLABELS.

(Note: bug in 0.73 version, please use new version)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
252
-->> (01) Reading Input Parameters From INCAR File...
-->> (02) Reading Fermi-Energy from DOSCAR File...
ooooooooo The Fermi Energy will be set to zero eV ooooooooooooooo
-->> (03) Reading Energy-Levels From EIGENVAL File...
-->> (04) Reading Structural Parameters from POSCAR File...
-->> (05) Reading K-Paths From KPATH.in File...
-->> (06) Written BAND.dat File!
-->> (07) Written BAND_REFORMATTED.dat File!
-->> (08) Written KLINES.dat File!
-->> (09) Written KLABELS File!
-->> (10) Written BAND_GAP File!
If you want use the default setting, type 0, if modity type 1
0
-->> (11) Graph has been generated!

if the python and matplotlib enviornment is set correctly. VASPKIT will draw a band figure band.png automatically. Following parameters should be set in ~/.VASPKIT file.

1
2
PYTHON_VERSION           3 
PLOT_MATPLOTLIB .TURE.
effective mass

You can also draw the figure from BAND.dat or BAND_REFORMATTED.dat by ORIGIN, which is described in Section 3.2.

By comparing with the line-mode of KPOINTS (option 302 and 303). The biggest advantages of 25 is that the k spacing along K-path is averaged, so that saves computational cost.

Versions prior to 0.72 took the same number of K-points for energy line, resulting in uneven K-distribution on different paths, as shown in the lift figure below. The latest version of VASPKIT supports automatic determination of K-points number on different energy band paths based on a given k-point interval, thus ensuring uniform spattering throughout the band calculation, as shown in right Figure below.

KPOINTS generated from VASPKIT 251 keeps the spacing between every k points. So, one can use less 0-weighted k points to get a similar qualified band structure, and thus, take less time when doing band structure calculations.

effective mass

To get projected hybrid functional band structure, please use 253,254,255

Ensure the LORBIT = 10 or LORBIT = 11 parameter in INCAR to output projection information.

1
2
3
253) Get Projected Band-Structure for Selected Atoms            
254) Get Projected Band-Structure for Each ELement
255) Get the Sum of Projected Band-Structure for Selected Atoms

For example: by using 253, a free format input is available. You can input any atoms by its index and any elements symbol. Projected band structure will saved for each elements one by one.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  -->> (01) Reading Input Parameters From INCAR File...
-->> (02) Reading Fermi-Energy from DOSCAR File...
ooooooooo The Fermi Energy will be set to zero eV ooooooooooooooo
-->> (03) Reading Structural Parameters from POSCAR File...
-->> (04) Reading Energy-Levels From EIGENVAL File...
-->> (05) Reading Band-Weights From PROCAR File...
-->> (06) Reading K-Paths From KPATH.in File...
|---------------------------------------------------------------|
Input the element-symbol and/or atom-index to SUM [Total-atom: 3]
(Free Format is OK, e.g., C Fe H 1-4 7 8 24)

------------>>
1-3
-->> (07) Written SELECTED_ATOM_LIST File!
-->> (08) Written PBAND_A1.dat File!
-->> (09) Written PBAND_A2.dat File!
-->> (10) Written PBAND_A3.dat File!
-->> (11) Written KLINES.dat File!
-->> (12) Written KLABELS File!

Elements projected band structure obtained by using 254,

1
2
3
4
5
6
7
8
9
10
11
12
254
-->> (01) Reading Input Parameters From INCAR File...
-->> (02) Reading Fermi-Energy from DOSCAR File...
ooooooooo The Fermi Energy will be set to zero eV ooooooooooooooo
-->> (03) Reading Structural Parameters from POSCAR File...
-->> (04) Reading Energy-Levels From EIGENVAL File...
-->> (05) Reading Band-Weights From PROCAR File...
-->> (06) Reading K-Paths From KPATH.in File...
-->> (07) Written PBAND_S.dat File!
-->> (08) Written PBAND_Mo.dat File!
-->> (09) Written KLINES.dat File!
-->> (10) Written KLABELS File!

All your input atoms will be sumed up and are projected to the band structure by using 255:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
255

-->> (01) Reading Input Parameters From INCAR File...
-->> (02) Reading Fermi-Energy from DOSCAR File...
ooooooooo The Fermi Energy will be set to zero eV ooooooooooooooo
-->> (03) Reading Structural Parameters from POSCAR File...
-->> (04) Reading Energy-Levels From EIGENVAL File...
-->> (05) Reading Band-Weights From PROCAR File...
-->> (06) Reading K-Paths From KPATH.in File...
|---------------------------------------------------------------|
Input the element-symbol and/or atom-index to SUM [Total-atom: 3]
(Free Format is OK, e.g., C Fe H 1-4 7 8 24)

------------>>
1-2
-->> (07) Written SELECTED_ATOM_LIST File!
-->> (08) Written PBAND_SUM.dat File!
-->> (09) Written KLINES.dat File!
-->> (10) Written KLABELS File!

supplementary: band structure can also be down by pymatgen package:

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