HSE|HSE Functional for Band Structures in VASP
Related Reading
VASP the GUIDE: Hartree-Fock (HF) type and hybrid functional calculationsThese instructions are taken from the Vasp forum
VASPwiki: Tutorial on hybrid functionals
Related discussion: How can I calculate the DOS by using HSE06 in vasp?
【HSE|HSE Functional for Band Structures in VASP】Band structures using hybrid functionals have to be calculated the following way:
- First perform a selfconsistent Hartree-Fock/HSE calculation using a conventional KPOINTS file.
- Copy the IBZKPT file to KPOINTS, and explicitely add all desired k-points along high-symmetry lines of the BZ that are needed for the bandstructure plot. Add the points at the end of the KPOINTS file, but set the weights of these added k-points to 0.
- Do not forget to set the number of k-points in KPOINTS correctly (to the number of the k-points used in the standard mesh PLUS the number of the k-points along the lines), such that all k-points are used for the calculations.
- NKRED can not be used.
- Perform a second VASP run:
It is recommended to use the Davidson algorithm, since it converges that eigen energies at the new k-points fastest. Since VASP terminates when the total energy is converged to a certain threshold, it is important to force VASP to do a minimum number of steps, so that the orbitals at the new k-points are fully converged (note: since their weight is zero, they do not contribute to the total energy). This can be done using e.g.
ALGO = N ;
NELMIN = 5 ! Davidson, minimum 5 scf-steps
IMIX = 1 ! Use simple charge mixer, since
Pulay might blow up
- The KS-eigenvalues of the states along the high-symmetry lines are written in OUTCAR, EIGENVAL, vasprun.xml; please cut the k-points required for the bandstructure from one of these files and proceed as usual (using p4vasp or any other graphics tool you usually use to produce bandstructure-plots)
HSE06 calculated records 1. Gamma-scf After structural optimization
opt
cp -rf opt Gamma-scf
INCAR
SYSTEM=x
ISTART=0
ENCUT=350
EDIFF=1E-5
IBRION=2
POTIM=0.25
NSW=0
EDIFFG=-1E-2
ISMEAR=0
SIGMA=0.05
PREC=ACCURATE
ISIF=2
NPAR=4
#LWAVE=FALSE
#LCHARG=FALSE
LREAL=Auto
#IALGO=48
ISYM=0
KPOINTS
auto
0
Gamma
1 1 1
0 0 0
POSCAR
cp ../opt/CONTCAR POSCAR
2. 1hse-scf
cp -rf Gamma-scf 1hse-scf
INCAR
SYSTEM=x
ISTART=1
ENCUT=350
EDIFF=1E-5
IBRION=2
POTIM=0.25
NSW=0
EDIFFG=-1E-2
ISMEAR=0
SIGMA=0.05
PREC=ACCURATE
ISIF=2
NPAR=4
#LWAVE=FALSE
#LCHARG=FALSE
LREAL=Auto
#IALGO=48
ISYM=0
LHFCALC=.TRUE.
HFSCREEN=0.2
ALGO=Damped
TIME=0.4
3. 2hse-scf
cp -rf 1hse-scf 2hse-scf
INCAR
SYSTEM=x
ISTART=1
ENCUT=350
EDIFF=1E-5
IBRION=2
POTIM=0.25
NSW=0
EDIFFG=-1E-2
ISMEAR=0
SIGMA=0.05
PREC=ACCURATE
ISIF=2
NPAR=4
#LWAVE=FALSE
#LCHARG=FALSE
LREAL=Auto
#IALGO=48
ISYM=0
LHFCALC=.TRUE.
HFSCREEN=0.2
#ALGO=Damped
#TIME=0.4
4. Hseband
cp -rf 2hse-scf hseband
INCAR
SYSTEM=x
ISTART=1
ICHARG=11
LORBIT=10
ENCUT=350
EDIFF=1E-5
IBRION=2
POTIM=0.25
NSW=0
EDIFFG=-1E-2
ISMEAR=0
SIGMA=0.05
PREC=ACCURATE
ISIF=2
NPAR=4
LWAVE=FALSE
#LCHARG=FALSE
LREAL=Auto
#IALGO=48
ISYM=0
LHFCALC=.TRUE.
HFSCREEN=0.2
#ALGO=Damped
#TIME=0.4
KPOINTS
- Use script
gk.x
and filesyml
to output fileinp.kpt
. If the file has a few lines of zero, then delete. - Add the contents of
inp.kpt
at the end of the IBZKPT file, set the weights of these added k-points to 0. - Set the number of k-points correctly. For this example, the number is 1 + rows of file
ink.kpt
. - Copy the IBZKPT file to KPOINTS.
Automatically generated mesh
81
Reciprocal lattice
0.000000000000000.000000000000000.000000000000001
0.0000000.0000000.0000000
0.0250000.0000000.0000000
0.0500000.0000000.0000000
0.0750000.0000000.0000000
0.1000000.0000000.0000000
0.1250000.0000000.0000000
.........
Submit the job, then the EIGENVAL file will generate after the calculation. Modify the contents of the EIGENVAL: Remove high symmetry points whose weights are not zero and set the number of k-points correctly.
12012011
0.4622031E+020.1284000E-080.1040630E-080.4151000E-080.2500000E-15
1.000000000000000E-004
CAR
GeS@SnS
600803640.0000000E+000.0000000E+000.0000000E+000.0000000E+00
1-15.982521
2-15.834306
3-15.615449
4-15.458326
5-15.457173
6-15.366968
.....
Use script
pbnf.x
to output file bnd.dat
and highk.dat
. Import the data into origin and plot band structure.NOTE: There is a problem. In the step Hseband, the ICHARG parameter in the INCAR file needs to be set to 11 or 2? This needs to be tested.
Related discussion: http://muchong.com/t-3723568-1 http://muchong.com/t-4232787-1
推荐阅读
- whlie循环和for循环的应用
- ffmpeg源码分析01(结构体)
- 【WORKFOR】最真的自己
- R|R for data Science(六)(readr 进行数据导入)
- performSelectorOnMainThread:withObject:waitUntilDone:参数设置为NO或YES的区别
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- Swift7|Swift7 - 循环、函数
- 65|65 - Tips for File Handling
- 40
- 360|360 将停止 StartCom 数字证书业务;微软的 Visual Studio Tools for AI 现已提供使用