Density Functional (XC)¶
The starting point for the XC functional is usually the result for the homogeneous electron gas, after which the so called non-local or generalized gradient approximation (GGA) can be added.
The density functional approximation is controlled by the XC key.
Three classes of XC functionals are supported: LDA, GGA, meta-GGA, and range-separated hybrid functionals. There is also the option to add an empirical dispersion correction. The only ingredient of the LDA energy density is the (local) density, the GGA depends additionally on the gradient of the density, and the meta-GGA has an extra dependency on the kinetic energy density. The range-separated hybrids are explained below in the section Range-Separated Hybrids.
In principle you may specify different functionals to be used for the potential, which determines the self-consistent charge density, and for the energy expression that is used to evaluate the (XC part of the) energy of the charge density. The energy functional is used for the nuclear gradients (geometry optimization), too. To be consistent, one should generally apply the same functional to evaluate the potential and energy respectively. Two reasons, however, may lead one to do otherwise:
The evaluation of the GGA part (especially for meta-GGAs) in the potential is rather time-consuming. The effect of the GGA term in the potential on the self-consistent charge density is often not very large. From the point of view of computational efficiency it may, therefore, be attractive to solve the SCF equations at the LDA level (i.e. not including GGA terms in the potential), and to apply the full expression, including GGA terms, to the energy evaluation a posteriori: post-SCF.
A particular XC functional may have only an implementation for the potential, but not for the energy (or vice versa). This is a rather special case, intended primarily for fundamental research of Density Functional Theory, rather than for run-of-the-mill production runs.
All subkeys of XC
are optional and may occur twice in the data block: if one wants to specify different functionals for potential and energy evaluations respectively, see above.
XC
{LDA {Apply} LDA {Stoll}}
{GGA {Apply} GGA}
{DiracGGA GGA}
{MetaGGA {Apply} GGA}
{Dispersion {s6scaling} {RSCALE=r0scaling} {Grimme3} {BJDAMP} {PAR1=par1} {PAR2=par2} {PAR3=par3} {PAR4=par4}}
{Dispersion Grimme4 {s6=...} {s8=...} {a1=...} {a2=...}}
{Model [LB94|TB-mBJ|KTB-mBJ|JTS-MTB-MBJ|GLLB-SC|BGLLB-VWN|BGLLB-LYP]}
{SpinOrbitMagnetization [None|NonCollinear|CollinearX|CollinearY|CollinearZ]}
{LibXC {Functional}}
{DOUBLEHYBRID doublehybrid}
{RPA {option}}
End
The common use is to specify either an LDA or a (meta)GGA line. (Technically it is possible to have an LDA line and a GGA line, in which case the LDA part of the GGA functional (if applicable) is replaced by what is specified by the LDA line.)
Apply
States whether the functional defined on the pertaining line will be used self-consistently (in the SCF-potential), or only post-SCF, i.e. to evaluate the XC energy corresponding to the charge density. The value of apply must be SCF or POSTSCF. (default=SCF)
LDA/GGA/metaGGA¶
LDA
Defines the LDA part of the XC functional and can be any of the following:
Xonly: The pure-exchange electron gas formula. Technically this is identical to the Xalpha form with a value 2/3 for the X-alpha parameter.
Xalpha: the scaled (parameterized) exchange-only formula. When this option is used you may (optionally) specify the X-alpha parameter by typing a numerical value after the string Xalpha (Default: 0.7).
VWN: the parametrization of electron gas data given by Vosko, Wilk and Nusair (ref [1], formula version V). Among the available LDA options this is the more advanced one, including correlation effects to a fair extent.
Stoll: For the VWN or GL variety of the LDA form you may include Stoll’s correction [2] by typing Stoll on the same line, after the main LDA specification. You must not use Stoll’s correction in combination with the Xonly or the Xalpha form for the Local Density functional.
GGA
Specifies the GGA part of the XC Functional. It uses derivatives (gradients) of the charge density. Separate choices can be made for the GGA exchange correction and the GGA correlation correction respectively. Both specifications must be typed (if at all) on the same line, after the GGA subkey.
For the exchange part the options are:
Becke: the gradient correction proposed in 1988 by Becke [3]
PW86x: the correction advocated in 1986 by Perdew-Wang [4]
PW91x: the exchange correction proposed in 1991 by Perdew-Wang [5]
mPWx: the modified PW91 exchange correction proposed in 1998 by Adamo-Barone [6]
PBEx: the exchange correction proposed in 1996 by Perdew-Burke-Ernzerhof [7]
HTBSx: the HTBS exchange functional [8]
RPBEx: the revised PBE exchange correction proposed in 1999 by Hammer-Hansen-Norskov [9]
revPBEx: the revised PBE exchange correction proposed in 1998 by Zhang-Yang [10]
mPBEx: the modified PBE exchange correction proposed in 2002 by Adamo-Barone [11]
OPTX: the OPTX exchange correction proposed in 2001 by Handy-Cohen [12]
For the correlation part the options are:
Perdew: the correlation term presented in 1986 by Perdew [13]
PBEc: the correlation term presented in 1996 by Perdew-Burke-Ernzerhof [7]
PW91c: the correlation correction of Perdew-Wang (1991), see [5] [16] [17]
LYP: the Lee-Yang-Parr 1988 correlation correction [18]
Some GGA options define the exchange and correlation parts in one stroke. These are:
BP86: this is equivalent to Becke + Perdew together
PW91: this is equivalent to pw91x + pw91c together
mPW: this is equivalent to mPWx + pw91c together
PBE: this is equivalent to PBEx + PBEc together
HTBS: this is equivalent to HTBSx + PBEc together
RPBE: this is equivalent to RPBEx + PBEc together
revPBE: this is equivalent to revPBEx + PBEc together
mPBE: this is equivalent to mPBEx + PBEc together
BLYP: this is equivalent to Becke (exchange) + LYP (correlation)
OLYP: this is equivalent to OPTX (exchange) + LYP (correlation)
OPBE: this is equivalent to OPTX (exchange) + PBEc (correlation) [19]
DiracGGA
(Expert option!) This key handles which XC functional is used during the Dirac calculations of the reference atoms. A string is expected which is not restricted to names of GGAs but can be LDA-like functionals, too.
Note: In some cases using a GGA functional leads to slow convergence of matrix elements of the kinetic energy operator w. r. t. the
Accuracy
parameter. Then one can use the LDA potential for the calculation of the reference atom instead.
MetaGGA
Key to select the evaluation of a meta-GGA. A byproduct of this option is that the bonding energies of all known functionals are printed (using the same density). Meta-GGA calculations can be time consuming, especially when active during the SCF.
Self consistency of the meta-GGA is implemented as suggested by Neuman, Nobes, and Handy [20].
The available functionals of this type are:
TPSS: The 2003 meta-GGA [21]
M06L: The meta-GGA as developed by the Minesota group [22]
revTPSS: The 2009 revised meta-GGA [23]
MVS: Functional by Sun-Perdew-Ruzsinszky [24]
MS0: Functional by Sun et al. [25]
MS1: Functional by Sun et al. [26]
MS2: Functional by Sun et al. [26]
SCAN: Functional by Sun et al. [27]
TASKxc: by Aschebrock et al. Intended for band gaps and charge transfer systems.
TASKCC: Functional by Lebeda et al. [37], improves TASKxc atomization energies
LAK: Functional by Lebeda and coworkers. [47], it is a general purpose functional.
Note: For Meta-GGA XC functionals, it is recommended to use
small
ornone
frozen core (the frozen orbitals are computed using LDA and not the selected Meta-GGA)
Dispersion Correction¶
BAND supports the new D4(EEQ) as well as the older D3 and D3-BJ dispersion corrections from the group of Stefan Grimme:
D4(EEQ)¶
Dispersion Grimme4 {s6=...} {s8=...} {a1=...} {a2=...}
If
Dispersion Grimme4
is present in theXC
block the D4(EEQ) dispersion correction (with the electronegativity equilibrium model) by the Grimme group [33] [34] will be added to the total bonding energy, gradient and second derivatives, where applicable.The D4(EEQ) model has four parameters: \(s_6\), \(s_8\), \(a_1\) and \(a_2\) and their value should depend on the XC functional used. For the following functionals the D4(EEQ) parameters are predefined: B1B95, B3LYP, B3PW91, B97-D, BLYP, BP86, CAM-B3LYP, HartreeFock, OLYP, OPBE, PBE, PBE0, PW6B95, REVPBE, RPBE, TPSS, TPSSH. For these functionals it is enough to specify
Dispersion Grimme4
in the input block. E.g.:XC GGA BLYP Dispersion Grimme4 END
For all other functionals you should explicitly specify the D4(EEQ) parameters in the
Dispersion
key (otherwise the PBE parameters will be used). For example, for the PW91 functional you should use the following input:XC GGA PW91 Dispersion Grimme4 s6=1.0 s8=0.7728 a1=0.3958 a2=4.9341 END
The D4(EEQ) parameters for many functionals can be found in the supporting information of the following paper: [33], see also https://github.com/dftd4/dftd4.
D3 and D3-BJ¶
In BAND parameters for Grimme3 and Grimme3 BJDAMP can be used according to version 3.1 (Rev. 1) of the coefficients, published on the Bonn Bonn website.
DISPERSION Grimme3 BJDAMP {PAR1=par1 PAR2=par2 PAR3=par3 PAR4=par4}
If this key is present a dispersion correction (DFT-D3-BJ) by Grimme [29] will be added to the total bonding energy, gradient and second derivatives, where applicable. Parametrizations are implemented e.g. for B3LYP, TPSS, BP86, BLYP, PBE, PBEsol [28] , and RPBE. For SCAN parameters from Ref. [30] are used. The parametrization has four parameters. One can override these using PAR1=.. PAR2=.., etc. In the table the relation is shown between the parameters and the real parameters in the dispersion correction.
variable
variable on https://www.chemie.uni-bonn.de/grimme/de/software/dft-d3/bj_damping
PAR1
s6
PAR2
a1
PAR3
s8
PAR4
a2
DISPERSION Grimme3 {PAR1=par1 PAR2=par2 PAR3=par3}
If this key is present a dispersion correction (DFT-D3) by Grimme [31] will be added to the total bonding energy, gradient and second derivatives, where applicable. Parametrizations are available e.g. for B3LYP, TPSS, BP86, BLYP, revPBE, PBE, PBEsol [28], and RPBE, and will be automatically set if one of these functionals is used. For SCAN parameters from Ref. [30] are used. For all other functionals, PBE-D3 parameters are used as default. You can explicitly specify the three parameters.
variable
variable on https://www.chemie.uni-bonn.de/grimme/de/software/dft-d3/zero_damping
PAR1
s6
PAR2
sr,6
PAR3
s8
Dispersion {s6scaling RSCALE=r0scaling}
If the DISPERSION keyword is present a dispersion correction will be added to the total bonding energy, where applicable. By default the correction of Grimme is applied [32]. The term is added to the bonding energies of all printed functionals, here the LDA and a couple of GGAs are meant. The global scaling factor, with which the correction is added, depends on the XC functional used for SCF but it can be modified using the s6scaling parameter. The following scaling factors are used (with the XC functional in parentheses): 1.20 (BLYP), 1.05 (BP), 0.75 (PBE), 1.05 (B3LYP). In all other cases a factor 1.0 is used unless modified via the s6scaling parameter. The van der Waals radii, used in this implementation, are hard-coded. However, it is possible to modify the global scaling parameter for them using the RSCALE=r0scaling argument. The default value is 1.1 as proposed by Grimme [32].
Model Potentials¶
Model
Some functionals give only a potential and have no energy expression. We call such functionals model potentials. In BAND the following model potentials are available:
- LB94
With this model the asymptotically correct potential of van Leeuwen and Baerends is invoked [35].
- TB-mBJ
This model potential can be used to correct for the band gap problem with GGAs for bulk systems [36]. This potential depends on a c-factor for which there is a density dependent automatic expression. However you can override the automatic value by specifying XC%TB_mBJCFactor cfac. In principle: the bigger the value the larger the gap. KTB-mBJ/JTS-mTB-mBJ are variations of TB-mBJ. The formula for C contains three parameters: A,B, and E. The logic is as follows
potential
A
B
E
TB-mBJ [36]
-0.012
1.023
0.5
KTB-mBJ [38]
0.267
0.656
1.0
JTS-mTB-mBJ [39]
0.4
1.0
0.5
The three parameters (A,B, and E) can be user-defined set as follows:
XC Model TB_mBJ TB_mBJAFactor valA TB_mBJBFactor valB TB_mBJEFactor valE End
- GLLB-SC
This functional uses a model for the exchange response potential (based on J. Krieger, Y. Li and G. Iafrate response potential [41]) from which the derivative discontinuity follows [40]. This is an accurate functional for band gap predictions and Electric Field Gradient calculations. It is also a fast method and a very good compromise between accuracy and computational cost. This functional is composed of the GLLB exchange response potential and the PBESOL exchange hole and the correlation potential [40].
- BGLLB-VWN
This functional is a variation of the GLLB-SC functional using the B88 exchange hole potential and the VWN correlation potential. This functional gives good results for Group I-VII and II-VI semi conductors.
- BGLLB-LYP
This functional is a variation of the GLLB-SC functional using the B88 exchange hole potential and the LYP correlation potential. This functional gives good results for large band gap insulators.
One can change the K parameter for the GLLB functionals with the GLLBKParameter
key:
XC
Model [GLLB-SC|BGLLB-VWN|BGLLB-LYP]
GLLBKParameter val
End
The default value is K=0.382 (value obtained from the electron gas model in the original publication).
Non-Collinear Approach¶
SpinOrbitMagnetization
(Default=CollinearZ) Most XC functionals have as one ingredient the spin polarization. Normally the direction of the spin quantization axis is arbitrary and conveniently chosen to be the z-axis. However, in a spin-orbit calculation the direction matters, and it is arbitrary to put the z-component of the magnetization vector into the XC functional. It is also possible to plug the size of the magnetization vector into the XC functional. This is called the non-collinear approach. There is also the exotic option to choose the quantization axis along the x or y axis. To summarize, the value NonCollinear invokes the non-collinear method. The other three option CollinearX, CollinearY and CollinearZ causes either the x, y, or z component to be used as spin polarization for the XC functional.
LibXC Library Integration¶
Any publication employing calculations carried out with LibXC need to cite the current literature reference of LibXC, which is at the moment Ref. [S. Lehtola, C. Steigemann, M.J.T. Oliveira, M.A.L. Marques, SoftwareX 7, 1 (2018)] [14]. Benchmark papers employing functionals from LibXC should especially include a reference to the employed DFT library, since as discussed in Ref. [S. Lehtola, M.A.L. Marques, J. Chem. Phys. 159, 114116 (2023)] [15], the implementations of a given functionals in various program packages may not lead to the same result, even at the complete basis set limit.
LibXC functional
LibXC is a library of approximate XC functionals, see Ref. [42] [14]. Version 5.1.2 of LibXC is used.. See the LibXC website for the complete list of functionals: https://libxc.gitlab.io/functionals.
The following functionals can be evaluated with LibXC (incomplete list):
LDA: LDA, PW92, TETER93
GGA: AM05, BGCP, B97-GGA1, B97-K, BLYP, BP86, EDF1, GAM, HCTH-93, HCTH-120, HCTH-147, HCTH-407, HCTH-407P, HCTH-P14, PBEINT, HTBS, KT2, MOHLYP, MOHLYP2, MPBE, MPW, N12, OLYP, PBE, PBEINT, PBESOL, PW91, Q2D, SOGGA, SOGGA11, TH-FL, TH-FC, TH-FCFO, TH-FCO, TH1, TH2, TH3, TH4, VV10, XLYP, XPBE, HLE16
MetaGGA: M06-L, M11-L, MN12-L, MS0, MS1, MS2, MVS, PKZB, TPSS, HLE17, rSCAN, r2SCAN
Hybrids (only for non-periodic systems): B1LYP, B1PW91, B1WC, B3LYP, B3LYP*, B3LYP5, B3LYP5, B3P86, B3PW91, B97, B97-1 B97-2, B97-3, BHANDH, BHANDHLYP, EDF2, MB3LYP-RC04, MPW1K, MPW1PW, MPW3LYP, MPW3PW, MPWLYP1M, O3LYP, OPBE, PBE0, PBE0-13, REVB3LYP, REVPBE, RPBE, SB98-1A, SB98-1B, SB98-1C, SB98-2A, SB98-2B, SB98-2C, SOGGA11-X, SSB, SSB-D, X3LYP
MetaHybrids (only for non-periodic systems): B86B95, B88B95, BB1K, M05, M05-2X, M06, M06-2X, M06-HF, M08-HX, M08-SO, MPW1B95, MPWB1K, MS2H, MVSH, PW6B95, PW86B95, PWB6K, REVTPSSH, TPSSH, X1B95, XB1K
Range-separated (for periodic systems, only short range-separated functionals can be used, see Range-separated hybrid functionals): CAM-B3LYP, CAMY-B3LYP, HJS-PBE, HJS-PBESOL, HJS-B97X, HSE03, HSE06, LRC_WPBE, LRC_WPBEH, LCY-BLYP, LCY-PBE, M11, MN12-SX, N12-SX, TUNED-CAM-B3LYP, WB97, WB97X
Note that BAND can not calculate VV10 dependent LibXC functionals, like VV10, LC-VV10, B97M-V, WB97X-V.
Example usage for the MVS functional:
XC LibXC MVS End
Notes:
All electron basis sets should be used (see
CORE NONE
in section Basis set).For periodic systems only short range-separated functionals can be used (see Range-separated hybrid functionals)
In case of LibXC the output of the BAND calculation will give the reference for the used functional, see also the LibXC website https://libxc.gitlab.io/functionals.
Do not use any of the subkeys LDA, GGA, METAGGA, MODEL in combination with the subkey LIBXC.
One can use the DISPERSION key icw LIBXC. For a selected number of functionals the optimized dispersion parameters will be used automatically, please check the output in that case.
If you use a GGA functional via LibXC then BAND will calculate the XC potential, similar to what happens with the normal GGA key. For some GGA functionals, however, this gives a problem for certain elements (during the RADIAL part of the code). This has been tested for all elements and no such problems are observed for functionals in this white list: “AM05 BCGP BP86 HCTH-93 HCTH-120 HCTH-147 HCTH-407 HCTH-P14 PBEINT MPBE MPW PBE PBESOL PW91 SOGGA TH-FL XPBE HLE16”. When using a GGA not in the white list BAND will automatically switch to another strategy. This means that core orbitals will no longer correspond to the GGA, and also the calculation will be less efficient. If that happens this warning will be printed: WARNING: requested libxc gga functional may give numerical problems for certain atom types (in the RADIAL section))
Hartree-Fock¶
Pure Hartree-Fock is triggered by the key
XC
HartreeFock true
End
The Hartree-Fock exchange matrix is calculated through a procedure known as Resolution of the Identity (RI). See RIHartreeFock key.
There are some shortcomings to this option
It does not work with a frozen core
There are no gradients available
Does not work for periodic systems
Range-separated hybrid functionals¶
Short range-separated hybrid functionals, like the HSE03 functional [43], can be useful for prediction of more accurate band gaps compared to GGAs. These must be specified via the LibXC key
XC
LibXC functional {omega=value}
End
functional
The functional to be used. (Incomplete) list of available functionals: HSE06, HSE03, HJS-B97X, HJS-PBE and HJS-PBESOL (See the LibXC website for a complete list of available functionals).
omega
Optional. You can optionally specify the switching parameter omega of the range-separated hybrid. Only possible for the HSE03 and HSE06 functionals (See [43]).
Notes:
Hybrid functionals can only be used in combination with all-electron basis sets (see
CORE NONE
in section Basis set).The Hartree-Fock exchange matrix is calculated through a procedure known as Resolution of the Identity (RI). See RIHartreeFock key.
Regular hybrids (such as B3LYP) and long range-separated hybrids (such as CAM-B3LYP) cannot be used in periodic boundary conditions calculations (they can only be used for non-periodic systems).
There is some confusion in the scientific literature about the value of the switching parameter \(\omega\) for the HSE functionals. In LibXC, and therefore in BAND, the HSE03 functional uses \(\omega=0.106066\) while the HSE06 functional uses \(\omega=0.11\).
Usage example:
XC
LibXC HSE06 omega=0.1
End
Double hybrids, MP2 and RPA¶
Starting from AMS2023, Many-body perturbation theory functionals (double hybrids, MP2, and RPA) as implemented in ADF can also be used in the BAND engine for the molecular (non-periodic) case, see the ADF documentation for an overview over the implemented functionals.
Generally, BAND supports the same MBPT functionality as ADF. However, in Band, MP2, RPA, and double hybrids can not be used icw spin-orbit coupling.
It is recommended to adjust the Basis key inside the Dependency block and the DependencyThreshold inside the RIHartreeFock block. Typically, MBPT calculations require a large basis set (See the MBPT documentation inside ADF), ideally of quadruple-zeta quality or larger. In this case, the following settings are recommended.
Usage example:
XC
DoubleHybrid B2PLYP
End
Dependency
AllowBasisDependency True
Basis 1e-4
End
Softconfinement
Quality Excellent
End
RIHartreeFock
DependencyThreshold 1e-3
End
Defaults and special cases¶
If the
XC
key is not used, the program will apply only the Local Density Approximation (no GGA terms). The chosen LDA form is then VWN.If only a GGA part is specified, omitting the LDA subkey, the LDA part defaults to VWN, except when the LYP correlation correction is used: in that case the LDA default is Xonly: pure exchange.
The reason for this is that the LYP formulas assume the pure-exchange LDA form, while for instance the Perdew-86 correlation correction is a correction to a correlated LDA form. The precise form of this correlated LDA form assumed in the Perdew-86 correlation correction is not available as an option in ADF but the VWN formulas are fairly close to it.
Be aware that typing only the subkey LDA, without an argument, will activate the VWN form (also if LYP is specified in the GGA part).
GGA+U¶
A special way to treat correlation is with so-called LDA+U, or GGA+U calculations. It is intended to solve the band gap problem of traditional DFT, the problem being an underestimation of band gaps for transition-metal complexes. A Hubbard like term is added to the normal Hamiltonian, to model on-site interactions. In its very simplest form it depends on only one parameter, U, and this is the way it has been implemented in BAND. The energy expression is equation (11) in the work of Cococcioni [45]. See also the review article [44].
HubbardU
Atom
Element string
LValue [s | p | d | f]
UValue float
End
PrintOccupations Yes/No
Region
LValue [s | p | d | f]
Name string
UValue float
End
End
HubbardU
- Type:
Block
- Description:
Options for Hubbard-corrected DFT calculations.
Atom
- Type:
Block
- Recurring:
True
- Description:
Specify Hubbard parameters (U,l) for a certain element
Element
- Type:
String
- Description:
Name of the element, such as Cu or Zn
LValue
- Type:
Multiple Choice
- Default value:
s
- Options:
[s, p, d, f]
- Description:
L value of the shell to apply the Hubbard model to
UValue
- Type:
Float
- Default value:
0.0
- Unit:
Hartree
- Description:
Hubbard U value.
PrintOccupations
- Type:
Bool
- Default value:
Yes
- Description:
Whether or not to print the occupations during the SCF.
Region
- Type:
Block
- Recurring:
True
- Description:
Specify Hubbard parameters (U,l) for all atoms in a certain region
LValue
- Type:
Multiple Choice
- Default value:
s
- Options:
[s, p, d, f]
- Description:
L value of the shell to apply the Hubbard model to
Name
- Type:
String
- Description:
Name of the region
UValue
- Type:
Float
- Default value:
0.0
- Unit:
Hartree
- Description:
Hubbard U value.
An example to apply LDA+U to the d-orbitals of NiO looks like:
...
Atoms
Ni 0.000 0.000 0.000
O 2.085 2.085 2.085
End
...
...
HubbardU
printOccupations true
Atom element=Ni UValue=0.3 lValue=2
End
...
It is also possible to specify U per region.
OEP¶
(Expert options) When you are using a meta-GGA you are by default using a generalized Kohn-Sham method. However, it is possible to calculate a local potential, as is required for a strict Kohn-Sham calculation, via OEP, (see [46]).
The main options are controlled with the MetaGGA
subkey of the XC block if OEP
is present.
XC
[...]
MetaGGA GGA OEP {approximation} {Fit} {Potential}
[...]
End
GGA
specifies the name of the used meta-GGA. In combination with OEP only PBE, TPSS, MVS, MS0, MS1, MS2, and SCAN can be used!
approximation
(Default: KLI) There are three flavors to approximate the OEP: KLI, Slater, and ELP
Fit
By adding the string Fit on this line, one uses the fitted density instead of the exact density for the evaluation.
Potential
If not specified, only the tau-dependent part of the OEP is evaluated and used. By adding the string Potential in addition the tau-independent part is added to the XC potential. (This is needed e.g. for plotting the ‘vxc’)
With the following subkeys of the XC
blockkey you have extra control over the iterative OEP evaluation:
MGGAOEPMaxIter
(Default: 30) defines the maximum number of cycles for the iterative OEP evaluation.
MGGAOEPConvergence
(Default: 1E-6) defines convergence criterion for OEP evaluation.
MGGAOEPWaitIter
(Default: 0) defines the number of SCF cycles with the regular meta-GGA before switching to the OEP scheme.
MGGAOEPMaxAbortIter
(Default: 0) defines number of cycles for which the error is allowed to increase before the calculation is aborted. Here, zero means: do never abort.
MGGAOEPMaxErrorIncrease
(Default: 0.0) defines the maximum rate of increasing error before the calculation is aborted. Here, zero means: do never abort.
An example for an OEP metaGGA calculation
XC
MetaGGA MVS OEP
End
Note that a very fine Becke grid is needed.
BeckeGrid
Quality USER
UserRadMulFactor 20.0
UserCoreL 11
UserInter1L 13
UserInter2L 21
UserExterL 31
UserExterLBoost 35
End
Note also: the gaps are typically not closer to experiment, and the calculations are more expensive. This option is mainly about academic interest.
DFT-1/2¶
The DFT-1/2 method due to Slater has been extended by Ferreira (PRB,78,125116,2008) to address the band gap problem. DFT-1/2 can be used in combination with any XC functional (this method is also referred to as LDA-1/2 or GGA-1/2, depending on the functional used).
The physical picture is that the hole is localized having substantial self energy. Adding an electron to the solid is assumed to go to a very delocalized state with little or no self energy. The method amounts to adding attractive spherical potentials at atomic sites and optimizing the screening parameter for maximal band gap, and can be used on top of any functional, relativistic option and spin option. From this viewpoint the only freedom in the method is the list of active atom types, the ones for which we will add the potential and optimize the gap. The l-dependent potential option from Ferreira is currently not supported.
The simplest approach is to optimize all the atom types. However, one can also look at the character of the top of the valence band, and determine which atoms are contributing to the PDOS there. This can be done by hand by using the bandstructure GUI module. In band there is an option to analyze this automatically, see the Prepare=true sub option.
See also
XC
DFTHalf
ActiveAtomType
AtomType string
IonicCharge float
ScreeningCutOffs float_list
End
Enabled Yes/No
Prepare Yes/No
SelfConsistent Yes/No
End
End
XC
DFTHalf
- Type:
Block
- Description:
DFT-1/2 method for band gaps. See PRB vol 78,125116 2008. This method can be used in combination with any functional. For each active atom type (see ActiveAtomType) Band will perform SCF calculations at different screening cut-off values (see ScreeningCutOffs) and pick the cut-off value that maximizes the band gap. If multiple atom types are active, the screening cut-off optimizations are done one type at the time (in the same order as the ActiveAtomType blocks appear in the input).
ActiveAtomType
- Type:
Block
- Recurring:
True
- Description:
Use the DFT-1/2 method for the atom-type specified in this block.
AtomType
- Type:
String
- Description:
Atom-type to use. You can activate all atom-types by specifying ‘All’.
IonicCharge
- Type:
Float
- Default value:
0.5
- Description:
The amount of charge to be removed from the atomic HOMO.
ScreeningCutOffs
- Type:
Float List
- Default value:
[0.0, 1.0, 2.0, 3.0, 4.0, 5.0]
- Unit:
Bohr
- Description:
List of screening cut-offs (to screen the asymptotic IonicCharge/r potential). Band will loop over these values and find the cut-off that maximizes the band-gap. If only one number is provided, Band will simply use that value.
Enabled
- Type:
Bool
- Default value:
No
- GUI name:
Use method
- Description:
Whether the DFT-1/2 method will be used.
Prepare
- Type:
Bool
- Default value:
No
- Description:
Analyze the band structure to determine reasonable settings for an DFT-1/2 calculation. If this is possible the list of active atom types is written to the output. This can be used in a next run as the values for ActiveAtomType. The DFTHalf%Enabled key should be set to false
SelfConsistent
- Type:
Bool
- Default value:
Yes
- Description:
Apply the extra potential during the SCF, or only afterwards. Applying DFT-1/2 only post SCF increases the band gap, compared to the self-consistent one.
Here are some results showing that LDA-1/2 can work quite well, but that the TB-mBJ functional works better for this set.
References