Density Functional

The starting point for the xc functional is usually the result for the homogeneous electron gas, after which so called nonlocal or generalized gradient corrections (GGA: Generalized Gradient Approximation) are added.

XC functionals

The density functional approximation is controlled by the XC key.

XC (block-type)

Three classes of exchange-correlation functionals are supported: LDA, GGA, and meta-GGA. 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.

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. This is not so important for a single point calculation as BAND prints the bonding energies of a set of common functionals, but the energy functional is used for the nuclear gradients (geometry optimization). 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:

  1. 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.
  2. 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}}
   {Model [LB94|TB-mBJ|KTB-mBJ|JTS-MTB-MBJ|GLLB-SC]}
   {SpinOrbitMagnetization [None|NonCollinear|CollinearX|CollinearY|CollinearZ]}
   {LibXC {Functional}}
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 parameterization 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, in earlier times often called the ‘non-local’ correction to the LDA part of the density 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 [27]
  • PBEx: the exchange correction proposed in 1996 by Perdew-Burke-Ernzerhof [12]
  • HTBSx: the HTBS exchange functional [43]
  • RPBEx: the revised PBE exchange correction proposed in 1999 by Hammer-Hansen-Norskov [13]
  • revPBEx: the revised PBE exchange correction proposed in 1998 by Zhang-Wang [28]
  • mPBEx: the modified PBE exchange correction proposed in 2002 by Adamo-Barone [29]
  • OPTX: the OPTX exchange correction proposed in 2001 by Handy-Cohen [30]

For the correlation part the options are:

  • Perdew: the correlation term presented in 1986 by Perdew [6]
  • PBEc: the correlation term presented in 1996 by Perdew-Burke-Ernzerhof [12]
  • PW91c: the correlation correction of Perdew-Wang (1991), see [5], [8], [9]
  • LYP: the Lee-Yang-Parr 1988 correlation correction [7]

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) [31]
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 quite a bit more time consuming, especially when active during the SCF.

Self consistency of the meta GGA is implemented as suggested by Neuman, Nobes, and Handy.[11]

The available functionals of this type are:

  • TPSS: The 2003 Meta GGA [15]
  • M06L: The Meta GGA as developed by the Minesota group [16]
  • revTPSS: The 2009 revised Meta GGA [26]

Dispersion Correction

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 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 [42] 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 [14] , and RPBE. It 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 Bonn website
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 [41] 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 [14], and RPBE, and will be automatically set if one of these functionals is used. For all other functionals, PBE-D3 parameters are used as default. You can explicitly specify the three parameters.

variable variable on Bonn website
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.[32] The term is added to the bonding energies of all printed functionals, standard the LDA and a couple of GGAs. The global scaling factor with which the correction is added depends on the exchange-correlation functional used at SCF but it can be modified using the s6scaling parameter. The following scaling factors are used (with the XC functional in parantheses): 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] With the extra option Grimme3 the latest dispersion correction, known as D3, will be used.[41]

Model Potentials

Model

Some functionals give only a potential and have no energy expression. We call such functionals model potentials. In BAND there are three available:

LB94
With this model the asymptotically correct potential of van Leeuwen and Baerends is invoked.[10]
TB-mBJ

This model can be used to fix the band gap in bulk systems.[44] 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[44] -0.012 1.023 0.5
KTB-mBJ[54] 0.267 0.656 1.0
JTS-mTB-mBJ[55] 0.4 1.0 0.5

All 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 parameter-free functional models the derivative discontinuity.[49]

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

LibXC functional

LibXC is a library of approximate exchange-correlation functionals, see Ref. [63]. The development version 3 of LibXC is used. See the LibXC website for the complete list of functionals: http://www.tddft.org/programs/Libxc.

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
  • MetaGGA: B97M-V, M06-L, M11-L, MN12-L, MS0, MS1, MS2, MVS, PKZB, TPSS
  • 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, LC-VV10, LCY-BLYP, LCY-PBE, M11, MN12-SX, N12-SX, TUNED-CAM-B3LYP, WB97, WB97X, 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 http://www.tddft.org/programs/Libxc.

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

Range-separated hybrid functionals

Short range-separated hybrid functionals, like the HSE03 functional [62], can be useful for prediction of band gap. 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 [62]).

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-perdioc 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

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.[47] See also the review article [46].

HubbardU (block-type)

Key to control the GGA+U calculation:

HubbardU
   Enabled          [false | true]
   UValue           u1 u2 ...
   lValue           l1 l2 ...
   {PrintOccupations [true | false]}
End
Enabled
(Default: false) Whether or not to apply the Hubbard Hamiltonian
UValue
For each atom type specify the U value [atomic units]. A value of 0.0 is interpreted as no U.
lValue
For each atom type specify the l value (0 - s orbitals, 1 - p orbitals, 2 - d orbitals). A negative value is interpreted as no l-value.
PrintOccupations
(Default: true) Whether or not to print the occupations during the SCF.

An example to apply LDA+U to the d-orbitals of NiO looks like

HubbardU
   printOccupations true
   Enabled          true
   uvalue           0.3 0.0
   lvalue           2   -1
End

ATOMS Ni
   0.000  0.000  0.000
END

ATOMS O
   2.085  2.085  2.085
END

Spin polarization

By default BAND calculations are spin-restricted. To perform a spin-unrestricted calculation you should include the Unrestricted key:

UNRESTRICTED

Be aware that spin-unrestricted calculations are computationally roughly twice as expensive as spin-restricted.