Hybrid functionals

From Wiki
Revision as of 16:25, 7 November 2019 by 10.0.7.22 (talk)
Jump to navigation Jump to search

go back to Main Page, Group Pages, Núria López and Group

This page is under edition, it may not make sense yet :) (feel free to ask, if you have questions)

Hybrid functional theory

tbd

Implementation

VASP

  • 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.


Quantum Espresso

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