Density Functionals (XC)

The Density Functional, also called the exchange-and-correlation (XC) functional, consists of an LDA, a GGA part, a Hartree-Fock exchange part (hybrids), and a meta-GGA part (meta-GGA or meta-hybrid). Possibly, it also depends on virtual Kohn-Sham orbitals through inclusion of an orbital-dependent correlation (double-hybrids). LDA stands for the Local Density Approximation, which implies that the XC functional in each point in space depends only on the (spin) density in that same point. GGA stands for Generalized Gradient Approximation and is an addition to the LDA part, by including terms that depend on derivatives of the density. A hybrid GGA (for example B3LYP) stands for some combination of a standard GGA with a part of Hartree-Fock exchange. A meta-GGA (for example TPSS) has a GGA part, but also depends on the kinetic energy density. A meta-hybrid (for example TPSSh) has GGA part, a part of Hartree-Fock exchange and a part that depends on the kinetic energy density. For these terms ADF supports a large number of the formulas advocated in the literature. For post-SCF energies only, ADF supports also various other meta-GGA functionals and more hybrid functionals. A double-hybrid has a hybrid or a meta-hybrid part, but also contains a contribution from second-order Møller-Plesset perturbation theory (MP2). Here, only the hybrid (meta-hybrid) part is evaluated self-consistently, whereas the MP2 part is evaluated post-SCF and added to the hybrid (meta-hybrid) energy.

The key that controls the Density Functional is XC. All subkeys are optional.

XC
  {LDA LDA {Stoll}}
  {GGA GGA}
  {MetaGGA metagga}
  {Model MODELPOT [IP]}
  {HartreeFock}
  {HYBRID hybrid {HF=HFpart}}
  {MetaHYBRID metahybrid}
  {DOUBLEHYBRID doublehybrid}
  {RPA {option}}
  {XCFUN}
  {RANGESEP {GAMMA=X} {ALPHA=a} {BETA=b}}
  (LibXC functional}
  {DISPERSION [s6scaling] [RSCALE=r0scaling] [Grimme3] [BJDAMP] [PAR1=par1]  [PAR2=par2]  [PAR3=par3]  [PAR4=par4] }
  {Dispersion Grimme4 {s6=...} {s8=...} {a1=...} {a2=...}}
  {DISPERSION dDsC}
  {DISPERSION UFF}
end

If the XC key is omitted, the program will apply only the Local Density Approximation (no GGA terms). The chosen LDA form is then VWN.

LDA

XC
  LDA {functional} {Stoll}
End
LDA

Defines the LDA part of the XC functional. If functional is omitted, VWN will be used (also if LYP is specified in the GGA part).

Available LDA functionals:

  • Xonly: The pure-exchange electron gas formula. Technically this is identical to the Xalpha form (see next) with a value 2/3 for the X-alpha parameter.

  • Xalpha: The scaled (parametrized) 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 (separated by a blank). If omitted this parameter takes the default value 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 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. The Stoll formula is considered to be a correlation correction to the Local Density Approximation. It is conceptually not correct to use the Stoll correction and apply gradient (GGA) corrections to the correlation. It is the user’s responsibility, in general and also here, to avoid using options that are not solidly justified theoretically.

  • PW92: the parametrization of electron gas data given by Perdew and Wang (ref [3]).

GGA

XC
   GGA functional
End
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.

Available GGA functionals:

  • BP86: Exchange: Becke, Correlation: Perdew

  • PW91: Exchange: pw91x, Correlation: pw91c

  • mPW: Exchange: mPWx, Correlation: pw91c

  • PBE: Exchange: PBEx, Correlation: PBEc

  • RPBE: Exchange: RPBEx, Correlation: PBEc

  • revPBE: Exchange: revPBEx, Correlation: PBEc

  • mPBE: Exchange: mPBEx, Correlation: PBEc

  • PBEsol: Exchange: PBEsolx, Correlation: PBEsolc

  • HTBS: Exchange: HTBSx, Correlation: PBEc

  • BLYP: Exchange: Becke, Correlation: LYP

  • OLYP: Exchange: OPTX, Correlation: LYP

  • OPBE: Exchange: OPTX, Correlation: PBEc [4]

  • BEE: Exchange: BEEx, Correlation: PBEc

  • XLYP: Exchange: XLYPx [5] (exchange, not available separately from LYP) + LYP

  • SSB-D: Dispersion corrected functional by Swart-Solà-Bickelhaupt [63] [64]. The SSB-D functional by definition already includes a dispersion correction by Grimme (factor 0.847455). There are some numerical issues with the GGA implementation in ADF of SSB-D (Ref. [63] [64]) for some systems. Because of this, the GGA SSB-D option is only available for single-points (and NMR). Geometry optimizations (etc.) are still possible by using instead:

    XC
      METAGGA SSB-D
    END
    

    This METAGGA implementation is only possible with all-electron basis sets. Use GGA SSB-D for NMR calculations.

  • S12g: Dispersion corrected (Grimme-D3) functional by Swart, successor of SSB-D [6].

  • LB94: By Van Leeuwen and Baerends [7].

  • KT1: By Keal and Tozer [8].

  • KT2: By Keal and Tozer [8].

If only a GGA part is specified (omitting the LDA sub key) 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.

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: Becke (1988) [9].

  • PW86x: Perdew-Wang (1986) [10].

  • PW91x: Perdew-Wang (1991) [11]

  • mPWx: Modified PW91 by Adamo-Barone (1998) [12]

  • PBEx: Perdew-Burke-Ernzerhof (1996) [13]

  • RPBEx: revised PBE by Hammer-Hansen-Norskov (1999) [14]

  • revPBEx: revised PBE by Zhang-Wang (1998) [15]

  • mPBEx: Modified PBE by Adamo-Barone (2002) [16]

  • PBEsolx: Perdew-Ruzsinszky-Csonka-Vydrov-Scuseria (2008) [17]

  • HTBSx: [18]

  • OPTX: Handy-Cohen (2001) [19]

  • BEEx: Mortensen-Kaasbjerg-Frederiksen-Nørskov-Sethna-Jacobsen (2005) [20]

For the correlation part the options are:

  • Perdew: Perdew (1986) [21].

  • PBEc: Perdew-Burke-Ernzerhof (1996) [13] .

  • PBEsolc: The PBEsol correlation correction by Perdew-Ruzsinszky-Csonka-Vydrov-Scuseria (2008) [17]

  • PW91c: Perdew-Wang (1991), see [11].

  • LYP: Lee-Yang-Parr (1988) correlation correction [65] [66] [67].

The string GGA must contain not more than one of the exchange options and not more than one of the correlation options. If options are applied for both they must be separated by a blank or a comma. Example:

XC
  GGA Becke Perdew
End

is equivalent to

XC
  GGA BP86
End

It is questionable to apply gradient corrections to the correlation, while not doing so at the same time for the exchange. Therefore, the program will check this and stop with an error message. This check can be overruled with the key ALLOW.

MetaGGA

XC
  MetaGGA functional
End
MetaGGA

Specifies that a meta-GGA should be used during the SCF. All electron basis sets should be used (see Basis key).

Available meta-GGA functionals:

  • M06-L: Functional by Yan-Truhlar [59] [60]

  • TPSS: Functional by Tao-Perdew-Staroverov-Scuseria [61] [62]

  • revTPSS: Revised TPSS functional [22]

  • SSB-D: Dispersion corrected GGA functional by Swart-Solà-Bickelhaupt [63] [64]. Use GGA SSB-D for NMR calculations.

  • MVS: Functional by Sun-Perdew-Ruzsinszky [23]

  • MS0: Functional by Sun et al. [24]

  • MS1: Functional by Sun et al. [25]

  • MS2: Functional by Sun et al. [25]

  • SCAN: Functional by Sun et al. [26]

  • TASKxc: Functional by Aschebrock et al. [32], intended for charge transfer systems.

  • TASKCC: Functional by Lebeda et al. [34], improves TASKxc atomization energies

  • r2SCAN-3c: Composite DFT method by Gasevic et al. [33]

  • LAK: Functional by Lebeda and coworkers. [98], it is a general purpose functional.

The r2SCAN-3c composite method uses the \(r^2\) SCAN (r2SCAN) exchange-correlation functional, in combination with a tailor-made all electron polarized basis set (mTZ2P), the semiclassical London dispersion correction (D4), and a geometrical counterpoise (gCP) correction. NumericalQuality should be Good, and ZORA should be used. Note that internally LibXC will be used for the r2SCAN functional, and automatically the D4 and gCP corrections will be included. The STO-optimized r2SCAN-3c outperforms many conventional hybrid/QZ approaches in most common applications at a fraction of their cost.

The M06-L functional needs high integration accuracy (at least BeckeGrid quality good) for reasonable gradients. For TPSS moderate integration accuracy for reasonable gradients is sufficient. For heavier elements (Z>36) and if one uses the M06-L functional it is also necessary to include the following keyword

FragMetaGGAToten

Using this key FRAGMETAGGATOTEN the difference in the meta-hybrid or meta-GGA exchange-correlation energies between the molecule and its fragments will be calculated using the molecular integration grid, which is more accurate than the default, but is much more time consuming. Default is to calculate the meta-GGA exchange-correlation energies for the fragments in the numerical integration grid of the fragments.

Hartree-Fock

XC
  HartreeFock
End
HartreeFock

Specifies that the Hartree-Fock exchange should be used during the SCF.

Hybrid

XC
  HYBRID functional {HF=HFpart}
End
HYBRID

Specifies that a hybrid functional should be used during the SCF.

Available Hybrid functionals:

  • B3LYP: ADF uses VWN5 in B3LYP. functional (20% HF exchange) by Stephens-Devlin-Chablowski-Frisch [27].

  • B3LYP*: Modified B3LYP functional (15% HF exchange) by Reiher-Salomon-Hess [28].

  • B1LYP: Functional (25% HF exchange) by Adamo-Barone [29].

  • KMLYP: Functional (55.7% HF exchange) by Kang-Musgrave [30].

  • O3LYP: Functional (12% HF exchange) by Cohen-Handy [31].

  • X3LYP: Functional (21.8% HF exchange) by Xu-Goddard [5].

  • BHandH: 50% HF exchange, 50% LDA exchange, and 100% LYP correlation.

  • BHandHLYP: 50% HF exchange, 50% LDA exchange, 50% Becke88 exchange, and 100% LYP correlation.

  • B1PW91: Functional by (25% HF exchange) Adamo-Barone [29].

  • mPW1PW: Functional (25% HF exchange) by Adamo-Barone [12].

  • mPW1K: Functional (42.8% HF exchange) by Lynch-Fast-Harris-Truhlar [35].

  • PBE0: Functional (25% HF exchange) by Ernzerhof-Scuseria [36] and by Adamo-Barone [37], hybrid form of PBE.

  • OPBE0: Functional (25% HF exchange) by Swart-Ehlers-Lammertsma [4], hybrid form of OPBE.

  • S12H: Dispersion corrected (Grimme-D3) functional (25% HF exchange) by Swart [6].

HFpart

Specifies the amount of HF exchange that should be used in the functional, instead of the default HF exchange percentage for the given hybrid. Example HF=0.25 means 25% Hartree-Fock exchange.

Meta-Hybrid

XC
  MetaHYBRID functional
End
MetaHYBRID

Specifies that a meta-hybrid functional should be used during the SCF.

Available meta-hybrid functionals:

  • M06: Functional (27% HF exchange) by Yan-Truhlar [59] [60]

  • M06-2X: Functional (54% HF exchange) by Yan-Truhlar [59] [60]

  • M06-HF: Functional (100% HF exchange) by Yan-Truhlar [59] [60]

  • TPSSH: Functional (10% HF exchange) by Tao-Perdew-Staroverov-Scuseria [61] [62]

Range separated hybrids

In ADF there are two (mutually exclusive) ways of specifying range separated hybrids functionals:

  • Through the RANGESEP and XCFUN keys. This will use the Yukawa potential as switching function, see Ref. [38];

  • By specifying a range separated functional via the LibXC key.

See also the advanced tutorial: Tuning the range separation in LC-wPBE for organic electronics

RangeSep + XCFun: Yukawa-range separated hybrids

RANGESEP {GAMMA=X} {ALPHA=a} {BETA=b}

If RANGESEP is included, by default a long-range corrected (LC) functional is created with range separation parameter GAMMA of 0.75. As switching function in ADF the Yukawa potential is utilized, see Ref. [38]. Range separated functionals require XCFUN and are limited to GGA, meta-GGA, and CAMY-B3LYP. The CAMY-B3LYP functional is not the same as the CAM-B3LYP functional, since a different switching function is used. No other hybrids or meta-hybrids are supported. The special CAMYB3LYP functional is defined by three parameters, ALPHA, BETA and the attenuation parameter GAMMA. For CAMYB3LYP by default ALPHA is 0.19, BETA is 0.46, and GAMMA is 0.34.

Range-separated functionals make use of a modified form of the Coulomb operator that is split into pieces for exact exchange and DFT. As switching function in ADF the Yukawa potential is utilized, see Ref. [38]. Global hybrids can be thought of as a special case of a range-separated functional where the split is independent of the inter-electronic distance and is a simple X exact and 1-X DFT in all space.

In a general RS-functional the split depends on the inter-electronic distance. How the split is achieved depends on the functional in question but it is achieved using functions that smoothly go from 1 to 0. In ADF an exponential function is used (the error function is common in Gaussian based codes). In a range-separated function the potential goes from a Coulomb interaction to a sum of Coulomb functions attenuated by an exponential function.

In practical terms, this means that a range-separated functional looks very much like a hybrid (or meta-hybrid) functional but with additional integrals over the attenuated interaction with fit functions on the exact exchange side and a modified functional on the DFT side.

DFT part of RS-functionals

Using Hirao’s approach for creating RS-functionals, the RS form of a given exchange functional is created by multiplying the standard energy density by a factor that depends on the energy density. The factor is the same for all functionals and the only difference is introduced by the individual energy densities.

The range-separation comes in at the level of the integrals over the operator with fit functions. They are very similar to the standard Coulomb integrals.

RS-functionals

An RS-functional is described by a series of regions describing each of the pieces of the Coulomb operator. The total function is built up by looping over the regions and adding up all the pieces. Currently, simple LC functionals can be defined where the exact exchange goes from 0 to 1 as the inter-electronic distance increases and the DFT part does the reverse. In addition, CAMY-B3LYP type functionals can be defined. More general functionals are not possible yet.

Functionality/Limitations

RS functionals with XCFUN are limited to the GGA and meta-GGA functionals and one hybrid CAMY-B3LYP. The following functionals can be evaluated with range-separation at the present time:

  • LDA: VWN5, X-ALPHA PW92

  • GGA exchange: Becke88, PBEX, OPTX, PW91X, mPW, revPBEX

  • GGA correlation: LYP, Perdew86, PBEC

  • MetaGGA: TPSS, M06L, B95

  • Hybrids: CAMY-B3LYP

The following functionality has been tested: XC potential, energy, ground state geometry, TDDFT. Starting from ADF2018 singlet-triplet excitation calculations and excited state geometry optimizations are possible. See for possible limitations in case of excitation calculations or excited state geometry optimizations the corresponding part of the ADF manual.

Numerical stability

The range-separated implementation requires that the range-separation parameter is not too close to the exponent of a fit function. In practice this means that values of the separation parameter between 1.0 and 50 can cause numerical problems. Typical useful values are in the range 0.2 to 0.9 so this should not be too serious a limitation.

XC
  XCFUN
  RANGESEP {GAMMA=X} {ALPHA=a} {BETA=b}
END

Range separation is activated by putting RANGESEP in the XC block. Inclusion of XCFUN is required, see the XCFUN description. By default a long-range corrected (LC) functional is created with range separation parameter of 0.75. The parameter can be changed by modifying X in GAMMA=X in the RANGESEP card. Range separation typically will be used in combination with a GGA or METAGGA functional.

Range separation can not be included with a hybrid or meta-hybrid, with one exception, the special RS functional: CAMY-B3LYP. This is entered as HYBRID CAMY-B3LYP and must be used in combination with XCFUN (see XCFUN description) and RANGESEP. The CAMY-B3LYP functional is defined by three parameters, alpha, beta and the attenuation parameter gamma. The gamma parameter can be modified as for the LC functionals. For CAMY-B3LYP it defaults to 0.34. The alpha and beta parameters can be modified through ALPHA=a and BETA=b in the RANGESEP card. They default to 0.19 and 0.46 respectively.

XC
  HYBRID CAMY-B3LYP
  XCFUN
  RANGESEP GAMMA=0.34 ALPHA=0.19 BETA=0.46
END

List of the most important functionals, for which one can use range separation:

LDA VWN
GGA BLYP
GGA BP86
GGA PBE
HYBRID CAMY-B3LYP

Range-separated hybrids with LibXC

One can simply specify a range separated hybrid functional in the LibXC key, e.g.:

XC
  LibXC CAM-B3LYP
End

See the LibXC section for a list of available range separated hybrid functionals.

For the HSE03 and HSE06 short range-separated hybrids you can (optionally) specify the switching parameter omega, e.g.:

XC
  LibXC HSE06 omega=0.1
End

Notes on Hartree-Fock and (meta-)hybrid functionals

If a functional contains a part of Hartree-Fock exchange then the LDA, GGA, metaGGA, or MODEL key should not be used in combination with this key, and one should only specify one of HartreeFock, HYBRID or MetaHYBRID. Dispersion can be added. Note that it is not recommended to use (part of the) Hartree-Fock exchange in combination with frozen cores, since at the moment the frozen core orbitals are not included in the Hartree Fock exchange operator. In ADF one can do unrestricted Hartree-Fock (or hybrid or meta-hybrid) calculations, as long as one has integer occupation numbers. The default implementation in ADF for unrestricted Hartree-Fock calculations is UHF. In case of a high spin electron configuration one can do ROHF, see ROKS for high spin open shell molecules. You need to use the same XC-potential in the create run of the atoms, which is done automatically if you use the BASIS key.

Starting from ADF2009.01 the meta-hybrids M06, M06-2X, M06-HF, and TPSSH can be used during the SCF. Also starting from ADF2009.01 Hartree-Fock and the (meta-)hybrid potentials can be used in combination with geometry optimization, TS, IRC, LT, and numerical frequencies; hybrids can be used in calculating NMR chemical shift; PBE0 can be used in calculating NMR spin-spin coupling; Hartree-Fock and (meta-)hybrid can be used in calculating excitation energies, in which the kernel consists of the Hartree-Fock percentage times the Hartree-Fock kernel plus one minus the Hartree-Fock percentage times the ALDA kernel (thus no (meta-)GGA kernel). Hartree-Fock and the (meta-)hybrid potentials still can not or should not be used in combination with analytical frequencies, the (AO)RESPONSE key, EPR/ESR g-tensor, and frozen cores. Starting from ADF2010 it is possible to use Hartree-Fock and hybrids to calculate CD spectra.

In ADF one can do unrestricted Hartree-Fock (or hybrid or meta-hybrid) calculations (UHF, UKS), as long as one has integer occupation numbers, or, in case of a high spin electron configuration, one can do ROHF or ROKS, see ROKS for high spin open shell molecules.

It is possible to change the amount of HF exchange in the input for hybrids (not for meta-hybrids and Hartree-Fock). For many hybrid functionals the sum of the amount of Hartree-Fock exchange and the amount of LDA exchange (or GGA exchange) is one. If that is the case, then if one changes the amount of Hartree-Fock exchange in the input the amount of LDA exchange (or GGA exchange) will also be changed, such that the sum remains one. Example:

XC
  Hybrid B3LYP HF=0.25
END

In this case the amount of Hartree-Fock for the B3LYP functional will be changed to 25% (instead of 20%), and the amount of LDA exchange to 75% (instead of 80%). The LDA correlation and GGA exchange and correlation part will be left unaltered.

An accuracy issue is relevant for some of the meta-GGA functionals, in particular the M06 functionals. These need high integration accuracy (at least BeckeGrid quality good) for reasonable gradients. For TPSSH moderate integration accuracy for reasonable gradients is sufficient. For heavier elements (Z>36) and if one uses one of the M06 functionals it is also necessary to include the following keyword

FragMetaGGAToten

Using this key FRAGMETAGGATOTEN the difference in the metahybrid or metagga exchange-correlation energies between the molecule and its fragments will be calculated using the molecular integration grid, which is more accurate than the default, but is much more time consuming. Default is to calculate the meta-hybrid or meta-GGA exchange-correlation energies for the fragments in the numerical integration grid of the fragments.

For benchmark calculations one would like to use a large basis set, like the QZ4P basis set. In such cases it is recommended to use a good numerical quality. Thus for accurate hybrid calculations of small molecules one could use:

basis
  type QZ4P
end
AddDiffuseFit
Dependency bas=1e-4
NumericalQuality good

MP2, Double Hybrids, RPA

To calculate treat correlation energies beyond DFT, ADF offers MP2 and random-phase approximation (RPA) based methods. In addition, ADF offers a large number of modern Double hybrid functionals which combine MP2 correlation with a hybrid functional.

ADF implements canonical MP2 using density fitting. Additionally, ADF implements RPA and direct MP2 using an efficient atomic orbital based algorithm. The algorithm is described in this paper. [90] The algorithm is continuously improved over the last years and currently allows to perform single-point calculations for systems with up to 1000 atoms one a single modern compute node. Many of the most accurate Double Hybrid functionals only use direct MP2.

Double Hybrid Functionals

XC
  DOUBLEHYBRID functional
End
DOUBLEHYBRID

Specifies that a double-hybrid functional [69] should be used.

See also

The paper Double hybrid DFT calculations with Slater type orbitals and the page Double hybrids: recommendations for accurate thermochemistry and kinetics contain useful recommendations for Double Hybrid calculations in ADF.

Double hybrids usually yield considerably better energies than (meta-)GGA and (meta-)hybrid functionals for (main group) thermochemistry and kinetics, transition metal chemistry and non-covalent interactions. For an overview of the capabilities of double-hybrids implemented in ADF we refer to a recent review. [70]

The MP2 correlation energy consists of two terms,

\[\begin{split}E_{MP2} = & \frac{1}{2} (E_{\text{direct}} - E_{\text{ex}} )\\ E_{\text{direct}} = & \sum_{ij} \sum_{ab}\frac{(i a| j b) (i a| j b)}{{\epsilon_i+\epsilon_j-\epsilon_a-\epsilon_b}} \\ E_{\text{ex}} = & \sum_{ij} \sum_{ab}\frac{(i a| j b) (i b| j a)}{{\epsilon_i+\epsilon_j-\epsilon_a-\epsilon_b}} \\ (i a| j b) = & \iint \phi_i^\dagger(1) \phi_a(1) \frac{1}{r_{12}} \phi_j^\dagger(2) \phi_b(2) d1d2\end{split}\]

For a closed-shell system, the MP2 correlation energy can also be partitioned as

\[\begin{split}E_{MP2} = E_{\text{OS}} + E_{\text{SS}} \\ E_{\text{OS}} = E_{\text{direct}} \\ E_{\text{SS}} = E_{\text{direct}} - E_{\text{ex}}\end{split}\]

Here, OS (opposite spin) denotes the contribution to the correlation energy from electrons with unpaired spins and SS (same spin) denotes the contribution to the correlation energy from electron with paired spins. In case of spin-orbit coupling approximate SS and OS contributions are calculated.

There are three classes of Double hybrid functionals:

  • Opposite-spin only functionals (Only the OS term is used and scaled by an empirical factor)

  • Spin-component scaled functionals (Both, the OS and SS components are individually scaled by empirical factors)

  • Standard Double Hybrid functionals (Both, the OS and SS components are scaled by the same empirical factor)

We recommend to use opposite-spin only functionals for large systems (50-100 atoms and larger) since they are computationally more efficient than the other functionals with also include the same-spin contribution. An opposite-spin only functional calculation is always feasible when a hybrid calculation is feasible too!

For additional technical details of the algorithm and how to tweak the technical parameters, see the MBPT section.

Opposite-spin-only Double Hybrids

Currently, ADF supports the following opposite-spin-only Double Hybrid functionals:

  • SOS1-PBE-QIDH: 1-parameter functional with PBE exchange, PBE correlation (69 % HF, 44 % OS-MP2 [71]

  • rev-DOD-BLYP: B88 exchange, LYP correlation, Grimme3 dispersion (71 % HF, 62.2 % OS-MP2) [72]

  • rev-DOD-BLYP-D4: B88 exchange, LYP correlation, Grimme4 dispersion (71 % HF, 63.5 % OS-MP2) [72]

  • rev-DOD-PBE: PBE exchange, PBE correlation, Grimme3 dispersion (68 % HF, 61.3 % OS-MP2) [72]

  • rev-DOD-PBE-D4: PBE exchange, PBE correlation, Grimme4 dispersion (68 % HF, 61.8 % OS-MP2) [72]

  • rev-DOD-PBEP86: PBE exchange, P86 correlation, Grimme3 dispersion (69 % HF, 60.6 % OS-MP2) [72]

  • rev-DOD-PBEP86-D4: PBE exchange, P86 correlation, Grimme4 dispersion (69 % HF, 61.2 % OS-MP2) [72]

  • DOD-SCAN: SCAN exchange and correlation, Grimme3 dispersion (66 % HF, 63,0 % OS-MP2) [72]

  • rev-DOD-SCAN-D4: SCAN exchange and correlation, Grimme4 dispersion (66 % HF, 63.4 % OS-MP2) [72]

Except for SOS1-PBE-QIDH, all functionals include dispersion correction by default which cannot be switched off.

Standard Double Hybrids

Currently, ADF supports the following standard double hybrid functionals

  • B2PLYP: B88 exchange and LYP correlation (53 % HF, 27 % MP2) [69]

  • B2PIPLYP: B88 exchange and LYP correlation (60 % HF, 27 % MP2), parametrized for pi-pi interactions [73]

  • ROB2PLYP: B88 exchange and LYP correlation (59 % HF, 28 % MP2), restricted-open-shell version of B2PLYP [74]

  • B2TPLYP: B88 exchange and LYP correlation (60 % HF, 31 % MP2), parametrized for thermodynamics [75]

  • B2GPPLYP: B88 exchange and LYP correlation (65 % HF, 36 % MP2), ‘General Purpose’ parametrization [76]

  • B2KPLYP: B88 exchange and LYP correlation (72 % HF, 42 % MP2), parametrized for kinetics [75]

  • B2NCPLYP: B88 exchange and LYP correlation (70 % HF, 49 % MP2), parametrized for non-covalent interactions [77]

  • mPW2PLYP: mPW exchange and LYP correlation (55 % HF, 25 % MP2) [78]

  • mPW2KPLYP: mPW exchange and LYP correlation (72 % HF, 42 % MP2) [75]

  • mPW2NCPLYP: mPW exchange and LYP correlation (42 % HF, 49 % MP2) [77]

  • DH-BLYP: 1-Parameter functional with B88 exchange and LYP correlation (65 % HF, 42 % MP2) [79]

  • PBE0-DH: 1-Parameter functional with PBE exchange and PBE correlation (50 % HF, 13 % MP2) [80]

  • PBE-QIDH: 1-parameter functional with PBE exchange and PBE correlation (69 % HF, 33 % MP2) [71]

  • LS1-DH: 1-Parameter functional with PBE exchange and PBE correlation (75 % HF, 42 % MP2) [81]

  • PBE0-2: 1-Parameter functional with PBE exchange and PBE correlation (79 % HF, 50 % MP2) [82]

  • LS1-TPSS: 1-Parameter functional with TPSS meta-GGA (85 % HF, 61 % MP2) [83]

  • DS1-TPSS: 1-Parameter functional with TPSS meta-GGA (73 % HF, 53 % MP2) [83]

Empirical dispersion corrections can be requested in the XC block in the usual way. Some functionals can be combined with Grimme’s D4 empirical dispersion correction with optimized parameters: B2PLYP, B2GPPLYP, mPW2PLYP, PBE0-DH, PBE0-2. All functionals in this category can be combined with Grimme’s D3(BJ) empirical dispersion correction with optimized parameters. Note that for Grimme’s D3(BJ) the parameters for B2PIPLYP, ROB2PLYP, B2TPLYP, B2KPLYP, mPW2PLYP, mPW2KPLYP, DH-BLYP, LS1-DH, PBE0-2, and DS1-TPSS are modified B2PLYP parameters, see Ref. [70]. If no optimized empirical dispersion parameters exist for a certain functional, default parameters are used, which may not give the expected results.

Spin-component-scaled functionals

Currently, ADF supports the following spin-component scaled Double Hybrid functionals:

  • DSD-BLYP: B88 exchange and LYP correlation, Grimme3 dispersion (69 % HF, 46 % OS-MP2, % 37 % SS-MP2) [84]

  • rev-DSD-BLYP: revised version of DSD-BLYP, Grimme3 dispersion (71 % HF, 54.7 % os, 19.8 % SS-MP2) [72]

  • rev-DSD-BLYP-D4: revised version of DSD-BLYP, Grimme4 dispersion (71 % HF, 55.9 % OS-, 19.7 % SS-MP2) [72]

  • DSD-PBEP86: PBE exchange and P86 correlation (69 % HF, 52 % OS-, % 22 % SS-MP2) [85]

  • rev-DSD-PBEP86: revised version of DSD-PBEP86 (69 % HF, 57.9 % OS-, 8 % SS-MP2) [72]

  • rev-DSD-PBEP86-D4: PBE exchange and P86 correlation, Grimme4 dispersion (69 % HF, 59.2 % OS-, 6.4 % SS-MP2) [72]

  • DSD-PBE: PBE exchange and PBE correlation, Grimme3 dispersion (68 % HF, 55 % OS-, % 13 % SS-MP2) [85]

  • rev-DSD-PBE: revised version of DSD-PBE, Grimme3 dispersion (68 % HF, 58.5 % os, 7 % SS-MP2) [72]

  • rev-DSD-PBE-D4: revised version of DSD-PBE, Grimme4 dispersion (68 % HF, 60 % os, 4.2 % SS-MP2) [72]

  • rev-DSD-SCAN-D4: based on SCAN meta-GGA (66 % HF, 63.2 % OS-, 1.3 % SS-MP2) [72]

  • SD-SCAN69: Based on SCAN meta-GGA, no dispersion correction (69 % HF, 62 % OS-, 26 % SS-MP2) [72]

Except for SD-SCAN69, all functionals include dispersion correction by default which cannot be switched off.

MP2

XC
  MP2
  EmpiricalScaling {NONE|SOS|SCS|SCSMI}
END

In addition to double-hybrids, ADF also implements MP2 including some popular spin-scaled variants. Technically, they are not distinct from double-hybrids, however, the all rely on a HF instead of a DFT calculation. The following variants are supported.

  • SOS-MP2: pure HF reference (100 % HF, 130 % OS-MP2) [86]

  • MP2: pure HF reference (100 % HF, 100 % MP2 correlation)

  • SCS-MP2: pure HF reference (100 % HF, 120 % OS-MP2, 33 % SS-MP2) [87]

  • SOS-MI-MP2: pure HF reference (100 % HF, 40 % OS-MP2, 129 % SS-MP2) [88]

In case of spin-orbit coupling approximate SS and OS contributions are calculated.

The spin-scaling variant can be requested in the XC block together with the MP2 keyword:

XC
  MP2
  EmpiricalScaling SOS
END

requests an SOS-MP2 calculation.

For additional technical details of the algorithm and how to tweak parameters, see the MBPT section.

RPA

Note: In AMS2022, the keyword for RPA+SOX was RPASOX.

The RPA goes beyond MP2 by accounting explicitly for the polarizability of the system which screens the electron-electron interaction. It can therefore be applied to large system for which MP2 typically diverges. [91] The following RPA based methods are available.

  • RPA : Standard (direct )RPA without exchange

  • RPA + SOX : Standard RPA plus statically screened second-order exchange [92]

  • RPA + SOSEX: Standard RPA plus dynamically screened second-order exchange [93]

A detailed overview of the RPA algorithm in ADF and a detailed assessment of the performance of second-order exchange corrections can be found in [95].

An RPA calculation is requested in the XC block:

XC
  RPA {NONE|DIRECT|SOSEX|SOSSX|SIGMA}
End

An RPA calculation needs to be combined with an XC functional. For instance,

XC
  hybrid pbe0
  RPA DIRECT
End

will perform a PBE0 calculation followed by a direct RPA calculation. RPA and all of its variants can be used in conjunction with LDA, GGAs, hybrid, and RSH functionals.

For additional technical details of the algorithm and how to tweak parameters, see the RPA section.

sigma-functional

Starting from AMS2023, the sigma-functional by Görling and coworkers is implemented. [94] In this method, the correlation kernel is calculated form the adiabatic fluctuation-dissipation theorem. In addition to the direct RPA (Hartree) kernel, higher-order contributions to the kernel are included by the so-called sigma-kernel which is fitted to relative energies. Sigma-functionals are as fast as RPA.

As an RPA calculation, a sigma-functional calculation needs to be combined with an XC functional. For instance,

XC
  hybrid pbe0
  RPA sigma
End

requests to use the sigma-functional with the W1 parametrization for PBE0. [96] sigma-functionals can only be used with a limited number of exchange-correlation functionals only, since they need to be explicitly parametrized for each functional. Currently, the sigma-functional can be used in conjunction with the GGA PBE, and the hybrids PBE0 and B3LYP. The available parametrizations for each functional are listed in the following table:

functional

available parametrizations [96] [97]

PBE

W1 S1 S2

PBE0

W1 S1 S2 W2

B3LYP

W1

The parametrization can be changed in the MBPT block, see the MBPT block. For instance:

MBPT
  SigmaFunctionalParametrization S1
End

Spin-orbit coupling

In case of spin-orbit coupling approximate SS and OS contributions are calculated, which is relevant for open shell molecules with double hybrids or MP2 variants that use different scaling factors for these contributions:

\[\begin{split}(i a| j b) = & \iint \phi_i^\dagger(1) \phi_a(1) \frac{1}{r_{12}} \phi_j^\dagger(2) \phi_b(2) d1d2 \\ m_{ij} = & \int \phi_i^\dagger(1) \vec{\sigma} \phi_i(1) d1 \cdot \int \phi_j^\dagger(2) \vec{\sigma} \phi_j(2) d2 \\ E_2^{SS} = & - \sum_{ijab} \frac{(1+m_{ij}) (i a| j b) (a i| b j)}{\epsilon_i+\epsilon_j-\epsilon_a-\epsilon_b} + \sum_{ijab} \frac{2(i a| j b) (a j| b i)}{\epsilon_i+\epsilon_j-\epsilon_a-\epsilon_b} \\ E_2^{OS} = & - \sum_{ijab} \frac{(1-m_{ij}) (i a| j b) (a i| b j)}{\epsilon_i+\epsilon_j-\epsilon_a-\epsilon_b}\end{split}\]

with, \(i,j\) occupied spinors, \(a,b\) virtual spinors, \(\epsilon\) spinor energies, \(\vec{\sigma}\) Pauli spin matrices. Note with pure \(\alpha\) and \(\beta\) orbitals, \(m_{i^\alpha j^\alpha} = m_{i^\beta j^\beta} = 1, m_{i^\alpha j^\beta} = m_{i^\beta j^\alpha} = -1\), one has the familiar SS and OS energy expressions.

Model Potentials

Several asymptotically correct XC potentials have been implemented in ADF, such as the (now somewhat outdated) LB94 potential [7], the gradient-regulated asymptotic correction (GRAC) [39], and the statistical average of orbital potentials (SAOP) [42] [40]. These can currently be used only for response property calculations, not for geometry optimizations. For spectroscopic properties, they usually give results superior to those obtained with LDA or GGA potentials, (see Ref. [41] for applications to (hyper)polarizabilities Cauchy coefficients, etc. of small molecules). This is particularly true if the molecule is small and the (high-lying) virtual orbitals are important for the property under study.

It was also shown that, simply using the orbital energies of the occupied Kohn-Sham orbitals of a SAOP calculation, quite good agreement with experiment vertical ionization potentials is obtained. This is true not only for the HOMO orbital energy, which should be identical to (minus) the experimental ionization potential with the exact XC potential, but also for lower-lying occupied orbital energies. The agreement becomes worse for deep-lying core orbital energies. A theoretical explanation and practical results are given in Ref. [43].

XC
  Model ModelPotential [IP]
End
MODEL

Specifies that one of the less common XC potentials should be used during the SCF. These potentials specify both the exchange and the correlation part. No LDA, GGA, MetaGGA, HartreeFock, HYBRID or MetaHYBRID key should be used in combination with these keys. It is also not advised to use any energy analysis in combination with these potentials. For energy analysis we recommend to use one of the GGA potentials. It is currently not possible to do a Create run with these potentials. It is possible to do a one atom regular ADF calculation with these potentials though, using a regular adf.rkf (TAPE21) file from an LDA or GGA potential as input. Available model potentials:

  • LB94: This refers to the XC functional of Van Leeuwen and Baerends [7]. There are no separate entries for the Exchange and Correlation parts respectively of LB94. Usually the GRAC or SAOP potentials give results superior to LB94.

  • GRAC: The gradient-regulated asymptotic correction, which in the outer region closely resembles the LB94 potential [39]. It requires a further argument: the ionization potential [IP] of the molecule, in hartree units. This should be estimated or obtained externally, or calculated in advance from two GGA total energy calculations.

  • IP:Should be supplied only if GRAC is specified.

  • SAOP: The statistical average of orbital potentials [42] [40]. It can be used for all electron calculations only. It will be expensive for large molecules, but requires no further parameter input.

The LB94, GRAC, and SAOP functionals have only a SCF (=Potential) implementation, but no Energy counterpart.

The LB94, GRAC, and SAOP forms are density functionals specifically designed to get the correct asymptotic behavior. This yields much better energies for the highest occupied molecular orbital (HOMO) and better excitation energies in a calculation of response properties (Time Dependent DFT). Energies for lower lying orbitals (sub-valence) should improve as well (in case of GRAC and SAOP, but not LB94). The energy expression underlying the LB94 functional is very inaccurate. This does not affect the response properties but it does imply that the energy and its derivatives (gradients) should not be used because LB94-optimized geometries will be wrong, see for instance [44]. The application of the LB94 functional in a runtype that involves the computation of energy gradients is disabled in ADF. You can override this internal check with the key ALLOW.

In case of a GRAC calculation, the user should be aware that the potential in the outer region is shifted up with respect to the usual level. In other words, the XC potential does not tend to zero in the outer region in this case. The size of the shift is the difference between the HOMO orbital energy and the IP given as input. In order to compare to regular GGA orbital energies, it is advisable to subtract this amount from all orbital energies. Of course, orbital energy differences, which enter excitation energies, are not affected by this shift in the potential.

XCFun

Any publication employing calculations carried out with XCFun need to cite Ref. [U. Ekström, L. Visscher, R. Bast, A.J. Thorvaldsen, and K. Ruud, J. Chem. Theory Comput. 6, 1971 (2010)] [45].

XCFUN

XCFun is a library of approximate exchange-correlation functionals, see Ref. [45], for which functional derivatives can be calculated automatically. For example, with XCFUN the full (non-ALDA) kernel can be evaluated and this has been implemented in the calculation of TDDFT excitations. The Full kernel can not be used in combination with symmetry or excited state geometry optimizations. The following functionals can be evaluated with XCFUN at the present time:

  • LDA: VWN5, X-ALPHA, PW92

  • GGA exchange: Becke88, PBEX, OPTX, PW91X, mPW, revPBEX

  • GGA correlation: LYP, Perdew86, PBEC

  • MetaGGA: TPSS, M06L, B95

  • MetaHybrids: M06, M05, M062X, M06HF

  • Hybrids: PBE0, B3LYP, BHandH, B1LYP, B3LYP*, PBEFALFX

  • Yukawa range separated Hybrids: CAMY-B3LYP and more, see Yukawa RS hybrids with XCFUN

Here MetaGGA B95 means Becke88 exchange + B95c correlation. The Metahybrids PW6B95 and PWB6K have been removed from this list, since they do not agree with the LibXC implementation.

LibXC

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)] [47]. 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)] [52], 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 exchange-correlation functionals, see Ref. [46] [47]. All electron basis sets should be used (see Basis key). Version 5.1.2 of LibXC is used. The following functionals can be evaluated with LibXC (incomplete list):

  • LDA: LDA, PW92, TETER93

  • GGA: AM05, BCGP, 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, XLYP, XPBE, HLE16

  • MetaGGA: M06-L, M11-L, MN12-L, MS0, MS1, MS2, MVS, PKZB, RSCAN, R2SCAN, REVSCAN, SCAN, TPSS, HLE17

  • Hybrids: 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: B86B95, B88B95, BB1K, M05, M05-2X, M06, M06-2X, M06-HF, M08-HX, M08-SO, MPW1B95, MPWB1K, MS2H, MVSH, PW6B95, PW86B95, PWB6K, REVSCAN0, SCAN0, REVTPSSH, TPSSH, X1B95, XB1K

  • Range-separated: CAM-B3LYP, CAMY-B3LYP, HJS-PBE, HJS-PBESOL, HJS-B97X, HSE03, HSE06, LRC_WPBE, LRC_WPBEH, LCY-BLYP, LCY-PBE, M06-SX, M11, MN12-SX, N12-SX, TUNED-CAM-B3LYP, WB97, WB97X

One of the acronyms in the list above can be used, or one can also use the functionals described at the LibXC website https://libxc.gitlab.io/functionals. Note that ADF can not calculate VV10 dependent LibXC functionals, like VV10, LC-VV10, B97M-V, WB97X-V. Example usage for the BP86 functional:

XC
  LibXC BP86
End

Alternative

XC
  LibXC XC_GGA_X_B88 XC_GGA_C_P86
End

In case of LibXC the output of the ADF 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, HARTREEFOCK, HYBRID, METAHYBRID, XCFUN, RANGESEP in combination with the subkey LIBXC. One can use the DISPERSION key with LIBXC. For a selected number of functionals the optimized dispersion parameters will then be used automatically, please check the output in that case. Note that in many cases you have to include the DISPERSION key and include the correct dispersion parameters yourself.

The LibXC functionals can not be used with frozen cores, NMR calculations, the (AO)RESPONSE key, EPR/ESR g-tensor. Most LibXC functionals can be used in combination with geometry optimization, TS, IRC, LT, numerical frequencies, and excitation energies (ALDA kernel used). For a few GGA LibXC functionals analytical frequencies can be calculated, and one can use the full kernel in the calculation of excitation energies (if FULLKERNEL is included as subkey of the key EXCITATIONS). In case of LibXC (meta-)hybrids and calculating excitation energies, the kernel consists of the Hartree-Fock percentage times the Hartree-Fock kernel plus one minus the Hartree-Fock percentage times the ALDA kernel (thus no (meta-)GGA kernel). For the LibXC range separated functionals, like CAM-B3LYP, starting from ADF2016.102 the kernel consists of range separated ALDA plus the kernel of the range separated exact exchange part. In ADF2016.101 the kernel for LibXC range separated functionals, like CAM-B3LYP, was using a 100% ALDA plus range separated exact exchange kernel (the ALDA part was not range-separated corrected). For the range separated functionals WB97 and WB97X one can use the full kernel in the calculation of excitation energies.

Dispersion corrections

Dispersion Grimme4 {s6=...} {s8=...} {a1=...} {a2=...}

If Dispersion Grimme4 is present in the XC block the D4(EEQ) dispersion correction (with the electronegativity equilibrium model) by the Grimme group [48] 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, 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: [48], see also https://github.com/dftd4/dftd4.

For Double-Hybrids, see the Double Hybrid Functionals section of the user manual.

DISPERSION Grimme3 BJDAMP

If DISPERSION Grimme3 BJDAMP is present a dispersion correction (DFT-D3(BJ)) by Grimme [49] 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, and RPBE. For SCAN parameters from Ref. [50] are used.

For example, this is the input block for specifying the PBE functional with Grimme3 BJDAMP dispersion correction (PBE-D3(BJ)):

XC
  GGA PBE
  DISPERSION Grimme3 BJDAMP
End

The D3(BJ) dispersion correction has four parameters. One can override the default parametrization by 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

For example, this is the input block for specifying the PBE-D3(BJ)-GP parametrization by Proppe et.al. [89] (i.e. \(a_1=0, s_8=0, a_2=5.6841\)):

XC
  GGA PBE
  DISPERSION Grimme3 BJDAMP PAR2=0 PAR3=0 PAR4=5.6841
End
DISPERSION Grimme3

If DISPERSION Grimme3 is present a dispersion correction (DFT-D3) by Grimme [51] 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, and RPBE, and will be automatically set if one of these functionals is used. There are also parameters directly recognized for S12g and S12h. For SCAN parameters from Ref. [50] are 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 (without the argument Grimme3) a dispersion correction (DFT-D) by Grimme [36] will be added to the total bonding energy, gradient and second derivatives, where applicable. 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 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 SSB-D functional includes the dispersion correction (factor 0.847455) by default.

The van der Waals radii used in this implementation are hard coded in ADF. 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 [36]. Please also see additional documentation for more information about this topic.

DISPERSION dDsC

The DISPERSION dDsC key invokes the density dependent dispersion correction [55], which has been parametrized for the functionals BLYP, PBE, BP, revPBE, B3LYP, PBE0 and BHANDHLYP.

DISPERSION UFF

The DISPERSION UFF key invokes the universal correction of density functional theory to include London dispersion (DFT-ulg) [53], which has been parametrized for all elements up to Lr (Z=103), and for the functional PBE, PW91, and B3LYP. For other functionals the PBE parameters will be used.

DISPERSION MBD

The DISPERSION MBD key invokes the MBD@rsSCS method [54], which is designed to accurately describe long-range correlation (and thus dispersion) in finite-gap systems, including at the same time a description of the short-range interactions from the underlying DFT computation of the electronic structure.

DFT-D4 functionals

Grimme’s latest dispersion correction, D4(EEQ) [48], has been added in the 2019.3 release of the Amsterdam Modeling Suite. This is the latest dispersion correction in the DFT-D family. In contrast to the earlier D3 dispersion correction, in D4(EEQ) the atomic coordination-dependent dipole polarizabilities are scaled based on atomic partial charges obtained from an electronegativity equilibrium model (EEQ). Compared to D3 the introduced charge dependence improves thermochemical properties, especially for systems containing metals. The authors recommend D4(EEQ) as a physically improved and more sophisticated dispersion model in place of D3.

DFT-D3 functionals

The D3 dispersion correction by Stefan Grimme is available in ADF. Grimme and his coworkers at the Universität Münster outlined the parametrization of this new correction, dubbed DFT-D3, in Ref. [51]. A slightly improved version with a more moderate BJ damping function appeared later, and was called DFTB-D3-BJ. [49] Here they list the advantages of the new method as the following:

  • It is less empirical, i.e., the most important parameters are computed from first principles by standard Kohn-Sham (KS)-(TD)DFT.

  • The approach is asymptotically correct with all DFs for finite systems (molecules) or nonmetallic infinite systems. It gives the almost exact dispersion energy for a gas of weakly interacting neutral atoms and smoothly interpolates to molecular (bulk) regions.

  • It provides a consistent description of all chemically relevant elements of the periodic system (nuclear charge Z = 1-94).

  • Atom pair-specific dispersion coefficients and cutoff radii are explicitly computed.

  • Coordination number (geometry) dependent dispersion coefficients are used that do not rely on atom connectivity information (differentiable energy expression).

  • It provides similar or better accuracy for “light” molecules and a strongly improved description of metallic and “heavier” systems.

DFT-D3-BJ is invoked with the XC block, for example

XC
  GGA BLYP
  Dispersion Grimme3 BJDAMP
END

Parametrizations are available for: B3LYP, TPSS, BP86, BLYP, revPBE, PBE, PBEsol, RPBE, and some more functionals, and will be automatically set if one of these functionals is used. Otherwise PBE parameters will be used. The parameters can be set manually, see the XC key block. In ADF2016 parameters for Grimme3 and Grimme3 BJDAMP were updated according to version 3.1.1 of the coefficients, available at the Bonn website

DFT-D functionals

An implementation for dispersion corrections based, called DFT-D is available in ADF. Like DFT-D3 this implementation is easy to use and is also supported by the GUI.

This DFT-D implementation is based on the paper by Grimme [36] and is extremely easy to use. The correction is switched on by specifying DISPERSION, possibly with parameters, in the XC input block. See description of the XC input block for details about the DISPERSION keyword.

Energies calculated Post-SCF using different DFT-D or GGA-D functionals are also present in table printed when METAGGA keyword is specified. These include: BLYP-D, PBE-D, BP86-D, TPSS-D, B3LYP-D, and B97-D. NOTE: this option does not require specifying a DISPERSION keyword in the XC block and thus there is no correction added to the energy gradient in this case. Please also note that although the original B97 functional includes HF exchange (and is thus a hybrid functional), the B97-D is a pure GGA. B3LYP-D is, however, a hybrid functional. The following functional-dependent global scaling factors s6 are used: 1.2 (BLYP-D), 0.75 (PBE-D), 1.05 (BP86-D), 1.0 (TPSS-D), 1.05 (B3LYP-D), and 1.25 (B97-D). These are fixed and cannot be changed.

Regarding performance of different functionals, testing has shown that BLYP-D gives good results for both energies and gradients involving VdW interactions. Post-SCF energy-only calculations at fixed geometries showed that also B97-D gives good binding energies compared to high-level reference data. Thorough comparison of different DFT-D functionals can be found in ref. [68]

Note: The original paper by Grimme included parameters for elements H throughout Xe. In ADF2009.01 values for dispersion parameters for DFT-D functionals for heavier elements (Cs-Rn) have been added. These new values have not been tested extensively. Thus, in this implementation, no dispersion correction is added for interactions involving atoms heavier than Radon.

DFT-D is invoked with the XC block, for example

XC
  GGA BLYP
  Dispersion
END

dDsC: density dependent dispersion correction

The DISPERSION dDsC key invokes the density dependent dispersion correction [55], which has been parametrized for the functionals BLYP, PBE, BP, revPBE, B3LYP, PBE0 and BHANDHLYP.

XC
  GGA BLYP
  Dispersion dDsC
END

For other functionals one can set the dDsC parameters ATT0 and BTT0 with

XC
  ...
  DISPERSION dDsC ATT0=att0 BTT0=btt0
END

The dispersion dDsC in ADF can not be used with fragments larger than 1 atom. The reason is that ADF uses the Hirshfeld partitioning on fragments for dDsC, which is only correct if the fragments are atoms.

DFT-ulg

The DISPERSION UFF key invokes the universal correction of density functional theory to include London dispersion (DFT-ulg) [53], which has been parametrized for all elements up to Lr (Z=103), and for the functional PBE, PW91, and B3LYP. For other functionals the PBE parameters will be used. Example:

XC
  GGA PBE
  Dispersion UFF
END

DFT-MBD functionals

The DISPERSION MBD key invokes the MBD@rsSCS method [54], which is designed to accurately describe long-range correlation (and thus dispersion) in finite-gap systems, including at the same time a description of the short-range interactions from the underlying DFT computation of the electronic structure. The MBD (many-body dispersion) method [56] obtains an accurate description of van der Waals (vdW) interactions that includes both screening effects and treatment of the many-body vdW energy to infinite order. The revised MBD@rsSCS method [54] employs a range-separation (rs) of the self-consistent screening (SCS) of polarizabilities and the calculation of the long-range correlation energy. It has been parametrized for the elements H-Ba, Hf-Rn, and for the functional PBE and PBE0. Note that the MBD@rsSCS method depends on Hirshfeld charges. In calculating forces the dependence of the Hirshfeld charges on the actual geometry is neglected. The MBD method is implemented in case the BeckeGrid is used for the numerical integration. Example for PBE MBD@rsSCS:

XC
  GGA PBE
  Dispersion MBD
END

One can use user defined values with:

XC
  Dispersion MBD {RSSCS|TS} {BETA=beta}
END
MBD {RSSCS|TS} {BETA=beta}

The default method for MBD is MBD@rsSCS. Optionally one can use MBD@TS or change the used parameter \(\beta\) with setting beta.

Post-SCF energy functionals

GGA energy functionals

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. 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 in the potential is more time-consuming than LDA. 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.

One possibility is to calculate a whole list of post-SCF energy functionals using the METAGGA keyword, see next section. For some functionals the next possibility is enough. One has to specify different functionals for potential and energy evaluations respectively, using:

XC
 {LDA {Apply} LDA {Stoll}}
 {GGA {Apply} GGA}
end
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 Energy. A value postSCF will also be accepted and is equivalent to Energy. A value Potential will also be accepted and is equivalent to SCF. For each record separately the default (if no Apply value is given in that record) is SCF. For each of the two terms (LDA, GGA) in the functional: if no record with Energy specification is found in the data block, the evaluation of the XC energy will use the same functional as is applied for the potential.

LDA, GGA

See the XC potential section for all possible values.

Meta-GGA and hybrid energy functionals

The post SCF energy calculation is an easy and cheap way to get a reasonable guess for the bond energies for different XC functionals at the same time. Note that post-SCF energy calculations for a certain XC functional will not be so accurate if the functional form of the XC functional used in the SCF is very different from the XC functional used post SCF. The relative accuracy of post-SCF energies may not be so high if one looks at small energy differences. For accurate energy calculations it is recommended to use the same XC functional during the SCF as for the energy.

The calculation of a large, pre-specified list of LDA, GGA, and meta-GGA energy functionals is invoked by specifying

METAGGA

as a separate keyword. The following (incomplete) list gives an idea of the (meta-)GGA density functionals that will then be calculated (the t-MGGA functional is the \(\theta\)-MGGA functional of Ref. [57]):

BP, PW91, mPW, BLYP, PBE, RPBE, revPBE, mPBE, OLYP, OPBE, KCIS, PKZB, VS98, FT97, BLAP3,
HCTH, tau-HCTH, BmTau1, BOP, OLAP3, TPSS, KT1, KT2, B97, M06-L, t-MGGA.

The hybrid GGA and hybrid meta-GGA energy functionals are calculated if in addition to the METAGGA key, the key

HARTREEFOCK

is included. The following (incomplete) list gives an idea of the extra hybrid (meta-)GGA density functionals that will then be calculated:

B3LYP, B3LYP*, B1LYP, KMLYP, O3LYP, X3LYP, BHandH, BHandHLYP, B1PW91, MPW1PW, MPW1K,
PBE0, OPBE0, TPSSh, tau-HCTH-hybrid, B97, M05, M05-2X, M06, M06-2X.

The keys METAGGA and HARTREEFOCK can be used in combination with any XC potential. Note that at the moment hybrid functionals can not be used in combination with frozen cores. Also most METAGGA functionals will give wrong results if used in combination with frozen cores. Thus it is best to use an all electron basis set if one of the keywords METAGGA or HARTREEFOCK is used. One should include the HARTREEFOCK keyword also in the create runs of the atoms. In ADF the hybrid energies only make sense if the calculation is performed with completely filled orbitals. In case of a high spin electron configuration one can do ROKS, see ROKS for high spin open shell molecules.

The Examples document describes an application to the OH molecule for the METAGGA option. More output, on the total XC energy of the system, can be obtained by specifying

PRINT METAGGA

This latter option is intended for debugging purposes mainly and is not recommended for general use.

The implementation calculates the total XC energy for a system and writes it to a file. This is always done in Create runs. If the basic fragments are atoms, the keyword

ENERGYFRAG
   ATOM [filename]
   ATOM [filename]
   ... ...
END

specifies that different atomic fragment files are to be used in the meta-GGA energy analysis than the regular atomic fragment files from the create runs. This keyword cannot be used for molecular fragment files. In order to compare meta-GGA energy differences between molecular fragments and the total molecule, results from the various calculations need to be combined by hand.

In such situations, it is advisable to use a somewhat higher integration accuracy than one would normally do, at least for the smaller fragments, as there is no error cancellation as in a regular ADF bond energy analysis.

A general comment is that some functionals show a more stable behavior than others (at least in our current implementation). In general, the functionals which are dependent on the Laplacian of the density may display a large variation with respect to basis set changes or different numerical integration accuracy. For this reason we currently recommend FT97 in favor of FT98. Similarly, the results with the BmTau1 functional should still be carefully checked. In our test calculations on the G2 set of molecules, the VS98 showed best performance, both for the average error and for the maximum error. The G2 set consists only of small molecules with elements up to Cl. The relative performance for transition metals and heavy elements is unknown and may well be very different from the ordering for the G2 set.

Post Hartree-Fock energy functionals

This is mostly taken from text by the authors of Ref. [58]:

In the early days of DFT, non-self-consistent Kohn-Sham energy was often evaluated upon Hartree-Fock (HF) densities as a way to test new approximations. This method was called HF-DFT. It has been discovered that in some cases, HF-DFT actually gave more accurate answers when compared to self-consistent DFT calculations. In Ref. [58], it was found that DFT calculations can be categorized into two different types of calculations. The error of an approximate functional can be decomposed into two parts: error from the functional (functional error), and error from the density (density-driven error). For most calculations, functional error is dominant, and here self-consistent DFT is usually better than non-self consistent DFT on more accurate densities (called density corrected DFT (DC-DFT)). Unlike these ‘normal’ calculations, there is a class of calculations where the density-driven error is much larger, so DC-DFT give better a result than self-consistent DFT. These calculations can be classified as ‘abnormal’. HF-DFT is a simple implementation of DC-DFT and a small HOMO-LUMO gap is an indicator of an ‘abnormal’ calculation, thus, HF-DFT would perform better in such cases.

In ADF one can do HF-DFT with:

XC
  HartreeFock
END
MetaGGA

This will produce a large, pre-specified list of LDA, GGA, meta-GGA, hybrid, and metahybrid energy functionals.

References