VASP the GUIDE: Hartree-Fock (HF) type and hybrid functional calculations
VASPwiki: Tutorial on hybrid functionals
Related discussion: How can I calculate the DOS by using HSE06 in vasp?
These instructions are taken from the Vasp forum
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)
Note: A Hartee-Fock calculation can NOT be continued from an existing CHGCAR file, since the non-local exchange is not determined by the charge density but by the density matrix and/or the KS-orbitals.
HSE06 calculated records
After structural optimization
cp -rf opt Gamma-scf
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
auto 0 Gamma 1 1 1 0 0 0
cp ../opt/CONTCAR POSCAR
cp -rf Gamma-scf 1hse-scf
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
cp -rf 1hse-scf 2hse-scf
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
cp -rf 2hse-scf hseband
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
- Use script
symlto output file
inp.kpt. If the file has a few lines of zero, then delete.
- Add the contents of
inp.kptat 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
- Copy the IBZKPT file to KPOINTS.
Automatically generated mesh 81 Reciprocal lattice 0.00000000000000 0.00000000000000 0.00000000000000 1 0.000000 0.000000 0.000000 0 0.025000 0.000000 0.000000 0 0.050000 0.000000 0.000000 0 0.075000 0.000000 0.000000 0 0.100000 0.000000 0.000000 0 0.125000 0.000000 0.000000 0 ... ... ...
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.
120 120 1 1 0.4622031E+02 0.1284000E-08 0.1040630E-08 0.4151000E-08 0.2500000E-15 1.000000000000000E-004 CAR GeS@SnS 600 80 364 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 1 -15.982521 2 -15.834306 3 -15.615449 4 -15.458326 5 -15.457173 6 -15.366968 . ....
pbnf.x to output file
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