# 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). 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.

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}
{OEP fitmethod {approximation}}
{HYBRID hybrid {HF=HFpart}}
{MetaHYBRID metahybrid}
{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 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 [20], 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 [21] 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 [288]).

## 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 [175]**BEE**: Exchange: BEEx, Correlation: PBEc**XLYP**: Exchange: XLYPx [172] (exchange, not available separately from LYP) + LYP**SSB-D**: Dispersion corrected functional by Swart-Solà-Bickelhaupt [286,287]. 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. [286,287]) 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 [367].**LB94**: By Van Leeuwen and Baerends [15].**KT1**: By Keal and Tozer [171].**KT2**: By Keal and Tozer [171].

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) [22].**PW86x**: Perdew-Wang (1986) [23].**PW91x**: Perdew-Wang (1991) [24]**mPWx**: Modified PW91 by Adamo-Barone (1998) [25]**PBEx**: Perdew-Burke-Ernzerhof (1996) [26]**RPBEx**: revised PBE by Hammer-Hansen-Norskov (1999) [27]**revPBEx**: revised PBE by Zhang-Wang (1998) [28]**mPBEx**: Modified PBE by Adamo-Barone (2002) [174]**PBEsolx**: Perdew-Ruzsinszky-Csonka-Vydrov-Scuseria (2008) [285]**HTBSx**: [437]**OPTX**: Handy-Cohen (2001) [29]**BEEx**: Mortensen-Kaasbjerg-Frederiksen-Nørskov-Sethna-Jacobsen (2005) [284]

For the

**correlation**part the options are:**Perdew**: Perdew (1986) [30].**PBEc**: Perdew-Burke-Ernzerhof (1996) [26] .**PBEsolc**: The PBEsol correlation correction by Perdew-Ruzsinszky-Csonka-Vydrov-Scuseria (2008) [285]**PW91c**: Perdew-Wang (1991), see [24].**LYP**: Lee-Yang-Parr (1988) correlation correction [31-33].

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 [223,224]**TPSS**: Functional by Tao-Perdew-Staroverov-Scuseria [246,247]**revTPSS**: Revised TPSS functional [438]**SSB-D**: Dispersion corrected GGA functional by Swart-Solà-Bickelhaupt [286,287]. Use GGA SSB-D for NMR calculations.**MVS**: Functional by Sun-Perdew-Ruzsinszky [395]

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 [176].**B3LYP***: Modified B3LYP functional (15% HF exchange) by Reiher-Salomon-Hess [177].**B1LYP**: Functional (25% HF exchange) by Adamo-Barone [178].**KMLYP**: Functional (55.7% HF exchange) by Kang-Musgrave [179].**O3LYP**: Functional (12% HF exchange) by Cohen-Handy [180].**X3LYP**: Functional (21.8% HF exchange) by Xu-Goddard [172].**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 [178].**mPW1PW**: Functional (25% HF exchange) by Adamo-Barone [25].**mPW1K**: Functional (42.8% HF exchange) by Lynch-Fast-Harris-Truhlar [181].**PBE0**: Functional (25% HF exchange) by Ernzerhof-Scuseria [211] and by Adamo-Barone [212], hybrid form of PBE.**OPBE0**: Functional (25% HF exchange) by Swart-Ehlers-Lammertsma [175], hybrid form of OPBE.**S12H**: Dispersion corrected (Grimme-D3) functional (25% HF exchange) by Swart [367].

`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:

## 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. [355]; - By specifying a range separated functional via the
`LibXC`

key.

### 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. [355]. 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. [355]. Global hybrids can be thought of as a special case of a range-separated functional where the split is independent of the interelectronic distance and is a simple X% exact and 1-X% DFT in all space.

In a general RS-functional the split depends on the interelectronic 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 interelectronic 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. In 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
```

ADF will automatically use the (non default) new Hartree-Fock RI scheme. 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 (ROHF is not implemented in ADF, only UHF). Note that the DEPENDENCY key is switched on for Hartree-Fock exchange in order to circumvent numerical problems, see also the ADDDIFFUSEFIT key. You also need to 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, as long as one has integer occupation numbers (ROHF is not implemented in ADF, only UHF).

Starting from ADF2009.01 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
```

## Model Potentials¶

Several asymptotically correct XC potentials have been implemented in ADF, such as the (now somewhat outdated) LB94 potential [15], the gradient-regulated asymptotic correction (GRAC) [16], and the statistical average of orbital potentials (SAOP) [244, 17]. 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.[18] 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. [19].

```
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 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 [15]. 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 [16]. 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 [244, 17]. 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 [34]. 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.

## Optimized effective potentials¶

```
XC
OEP fitmethod {approximation}
End
```

`OEP`

- Defines the optimized effective potential expanded into a set of the fit functions. The subkeyword fitmethod can be any of the following: BARTLETT [248], SCUSERIA [249]. In the case of SCUSERIA one of the following approximations needs to be specified: CEDA, KLI or SLATER. An application of OEP in ADF can be found in Ref.[250].

## XCFun¶

`XCFUN`

XCFun is a library of approximate exchange-correlation functionals, see Ref. [354], 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

The Metahybrids PW6B95 and PWB6K have been removed from this list, since they do not agree with the LibXC implementation.

## LibXC¶

`LibXC functional`

LibXC is a library of approximate exchange-correlation functionals, see Ref. [392, 488].

**All electron basis sets should be used**(see Basis key). Version 4.2.1 of LibXC is used. The interface in ADF to LibXC is incompatible with LibXC version 2. 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, XLYP, XPBE
- MetaGGA: M06-L, M11-L, MN12-L, MS0, MS1, MS2, MVS, PKZB, TPSS
- 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, 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, 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 http://www.tddft.org/programs/Libxc. 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 http://www.tddft.org/programs/Libxc.

Do not use any of the subkeys LDA, GGA, METAGGA, MODEL, HARTREEFOCK, OEP, HYBRID, METAHYBRID, XCFUN, RANGESEP 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.

The LibXC functionals can not be used icw 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, WB97X, and WB97X-V one can use the full kernel in the calculation of excitation energies.

## Dispersion corrections¶

`DISPERSION Grimme3 BJDAMP`

If DISPERSION Grimme3 BJDAMP is present a dispersion correction (DFT-D3-BJ) by Grimme [436] will be added to the total bonding energy, gradient and second derivatives, where applicable. This is the latest dispersion correction in the DFTB-D family. Parametrizations are implemented e.g. for B3LYP, TPSS, BP86, BLYP, PBE, PBEsol, and RPBE. It has four parameter. One can override this 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`

If DISPERSION Grimme3 is present a dispersion correction (DFT-D3) by Grimme [292] 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 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 [226] 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 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 SSB-D functional includes the dispersion correction (factor 0.847455) by default.The van der Waals radii used in this implementation are hardcoded 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 [226]. Please also see additional documentation for more information about this topic.`DISPERSION dDsC`

- The DISPERSION dDsC key invokes the density dependent dispersion correction [316], 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) [366], 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 [377], 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-D3 functionals¶

In ADF2012 Stefan Grimme’s latest dispersion correction is implemented. Grimme and his coworkers at the Universität Münster outlined the parametrization of this new correction, dubbed DFT-D3, in Ref. [292]. A slightly improved version with a more moderate BJ damping function appeared later, and was called DFTB-D3-BJ. [436] 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 starting from ADF2008. 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 [226] 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 s_{6} 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. [227]

**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
```

### MM dispersion (old implementation)¶

For the documentation on MM-dispersion see the old ADF 2014 documentation.

### dDsC: density dependent dispersion correction¶

The DISPERSION dDsC key invokes the density dependent dispersion correction [316], 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 icw 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) [366], 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 [377], 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 [376] 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 [377] 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
```

## Self-Interaction Correction¶

For the documentation on Self-Interaction Corrections see the old ADF 2014 documentation.

## 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.[388]):

```
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 (ROHF is not implemented in ADF, only UHF).

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. [381]:
- 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. [381], 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.