Hybrid functionals

From Wiki
Jump to navigation Jump to search

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