Hybrid functionals: Difference between revisions

From Wiki
Jump to navigation Jump to search
Fraenzine (talk | contribs)
No edit summary
Rgarcia (talk | contribs)
No edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
go back to [[Main Page]], [[Group Pages]], [[Núria López and Group]]
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)
This page is a draft created by Franziska Hegner. Please feel free to expand it


=Hybrid functional theory=
==Implementation in VASP==  
 
tbd
 
=Implementation=
 
==VASP==  


* For all hybrid functional calculations, set:  
* For all hybrid functional calculations, set:  
Line 41: Line 35:
(see also: https://cms.mpi.univie.ac.at/wiki/index.php/Specific_hybrid_functionals)
(see also: https://cms.mpi.univie.ac.at/wiki/index.php/Specific_hybrid_functionals)


==Quantum Espresso==
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==


Quantum Espresso input scripts are written in fortran and parameters are allocated to specific namelists. All the following paramters are set in the namelist
Quantum Espresso input scripts are written in fortran and parameters are allocated to specific namelists. All the following paramters are set in the namelist

Latest revision as of 16:07, 13 September 2021

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