Hybrid functionals
go back to Main Page, Group Pages, Núria López and Group
This page is a draft created by Franziska Hegner. Please feel free to expand it
Implementation in VASP[edit]
- For all hybrid functional calculations, set:
LHFCALC = .TRUE.
- For HSE calculations, set the HFSCREEN parameter:
HFSCREEN = 0.2 # HSE06 HFSCREEN = 0.3 # HSE03
The HFSCREEN parameter specifies the distance (in 1/Å) at which the exact (Hartree-Fock) exchange is screened. Therefore HF exact exchange is screened at a distance larger than 5 Å (HSE06), or 3.333 Å (HSE03), respectively, the way it is implemented in VASP. The difference between HSE03 and HSE06 is discussed in detail by Krukau et al. J. Chem. Phys. 125, 224106 (2006): https://aip.scitation.org/doi/abs/10.1063/1.2404663
- For HSE calculations, PBE is set als GGA functional
GGA = PE
- Defining the amount of introduced exact exchange:
AEXX = 0.25 # Amount of exact HF exchange, ie. 25% AGGAX = 0.75 # Amount of GGA exchange, i.e. 75 %
This is the default setting with 25 % exact exchange, you may reduce that number, in particular if you have compounds with transition metals and/or degenerate electronic states (see theory above).
- HSE03-13: This functional was optimised to fit the band gap of CoFe Prussian blue compounds; it generally presents a good compromise for calculating ionic solid compounds, which contain coordinated transition metal centres
GGA = PE LHFCALC = .TRUE. HFSCREEN = 0.3 # HSE03 AEXX = 0.13 # Amount of exact HF exchange, ie. 13% AGGAX = 0.87 # Amount of GGA exchange, i.e. 87 %
There are of course many other hybrid functionals, which require different settings, but generally they can be described by defining the GGA functional and the above-listed parameters.
(see also: https://cms.mpi.univie.ac.at/wiki/index.php/Specific_hybrid_functionals)
Since hybrid calculations are extremely slow (compared to GGA), speed them up by inheriting a the wavefunction (WAVECAR) or charge density (CHGCAR)! It is faster when you have an initial wavefunction to start with; however, the program crashes when it involves changes of wavefunction coefficients, that means by changing the KPOINT sampling. You can avoid that though by setting NKRED.
- For example, if you want to run a hybrid calculation with 3x3x1 KPOINTS, first run the calculation at gamma point and set:
NKREDX = 3 # reduction factor for the q-point grid representation of the exact exchange potential along reciprocal space direction b1 NKREDY = 3 # -"- b2 NKREDZ = 1 # -"- b3
Then take the WAVECAR (ISTART =1 ) and run the calculation at 3x3x1 KPOINTS. This will be much faster than taking an initial WAVECAR from a GGA calculation.
Implementation in Quantum Espresso[edit]
Quantum Espresso input scripts are written in fortran and parameters are allocated to specific namelists. All the following paramters are set in the namelist
&SYSTEM ... /
- Define hybrid functional:
input_dft = 'pbe0' ! Set the hybrid functional
(! is used to comment, such as # is used in bash)
- Defining the amount of introduced exact exchange:
exx_fraction = 0.25 ! Default for PBE0 hybrid functional