6.2 Exchange-Correlation Functionals Available

The following exchange-correlation functionals are available:

For EXX and LHF, see Chapter 19

The XCFun library (Arbitrary-Order Exchange-Correlation Functional Library) by Ulf Ekström and co-workers has been included [60] and some of the functionals implemented there can now be utilized. Among them are the empirically fitted MGGAs M06 and M06-2X from the Truhlar group [61]. XCFun functionals are available for energy, gradient, vib. frequencies and TDDFT excited state energy calculations - with and without RI approximation. For details and the license of XCFun please refer to its web site https://repo.ctcc.no/projects/xcfun/wiki See the next chapter for available functionals from XCFun.

In detail, the Turbomole own functional library consists of:

For the SCAN functional, be advised that the convergence of the total energy and energy gradients with respect to the radial grid used to integrate the exchange-correlation energy and potential is slower than previous non-empirical functionals [72]. A radial grid size of 40 is typically needed to converge the total energy (dscfor ridft) to μH accuracy, while a radial grid size of 50 is typically needed to converge the energy gradients (grador rdgrad). Convergence with respect to the angular grids remains unchanged. The radial grid size can be set in the control file through the radsize keyword.

Additionally, for all four modules (dscf, grad, ridft, and rdgrad) the following hybrid functionals are available (a mixture of Hartree–Fock exchange with DFT exchange-correlation functionals):

The Double-Hybrid Functional B2-PLYP can be used for single point energy calculations. Note that one has to run an MP2 calculation after the DFT step to get the correct B2-PLYP energy!

B2-PLYP is a so-called double-hybrid density functional (DHDF) [77] that uses in addition to a non-local exchange contribution (as in conventional hybrid-GGAs) also a non-local perturbation correction for the correlation part. In the following options/restrictions in the present version of this method:

The non-local perturbation correction to the correlation contribution is given by second-order perturbation theory. The idea is rooted in the ab initio Kohn-Sham perturbation theory (KS-PT2) by Görling and Levy [78,79]. The mixing is described by two empirical parameters ax and ac in the following manner:

EXC (DHDF   ) = (1- ax)EX (GGA  )+ axEX  (HF  )            (6.6)
        + (1 - ac)EC (GGA  ) + acEC(KS  - P T2),
where EX(GGA) is the energy of a conventional exchange functional and EC(GGA) is the energy of a correlation functional. EX(HF) is the Hartree-Fock exchange of the occupied Kohn-Sham orbitals and EC(KS - PT2) is a Møller-Plesset like perturbation correction term based on the KS orbitals:
                 1-∑  ∑   (ia|jb)[(ia|jb)---(ib|ja)]
EC(KS  - P T2) = 2           ei + ej - ea - eb .
                    ia  jb

The method is self-consistent only with respect to the first three terms in Eq. 6.6, i.e., first a SCF using a conventional hybrid-GGA is performed first. Based on these orbitals EC(KS - PT2) is evaluated afterwards and added to the total energy.

For B2-PLYP, B88 exchange [66] and LYP correlation [67] are used with the parameters ax = 0.53 and ac = 0.27. Due to the relatively large Fock-exchange fraction, self-interaction error related problems are alleviated in B2-PLYP while unwanted side effects of this (reduced account of static correlation) are damped or eliminated by the PT2 term.

How to use B2-PLYP:

Or use the b2plypprep script to setup up the calculation.

Local hybrid functionals [80] feature an admixture of the exact-exchange energy density to a (semi-)local exchange energy density in real space managed by a local mixing function (LMF). They can therefore be viewed as a more flexible generalization of global hybrid functionals.

So far, local hybrid functionals are available in the modules ridft, [81] grad, rdgrad, [82] and escf. [83] For the calculation of non-standard exact-exchange integrals, a semi-numerical integration scheme is used. The usual DFT grids are employed for this task and small grids are thus recommended if possible. To accelerate local hybrid calculations, the analytical integrals for exact exchange are screened using the overlap and the density matrix (see S- and P-junctions Sec. 20.2.7 for details). In escf-calculations, a larger amount of main memory is required for the semi-numerical integration. Therefore, additional main memory of approximately 0.0004 NBF 2 MB should be provided (for each CPU).

The following local hybrid functionals are available so far:

D3 parameters for these local hybrid functionals have been implemented. [89] Note that Lh14t-calPBE is not available in grad, and rdgrad and requires larger numerical grids in escf-calculations.

For gradient calculations it is strongly recommended to use the weight derivatives keyword in the $dft data group to avert numerical inaccuracies.

6.2.1 Exchange-Correlation Functionals from XCFun library

The XCFun library is taken from: https://repo.ctcc.no/projects/xcfun/wiki

The current TURBOMOLE version uses XCFun 1.99 and enables the usage of individual mixtures of the available exchange and correlation functionals.

To trigger the usage of XCFun functionals, use the keyword xcfun in the $dft section:

  functional xcfun set-gga  
  functional xcfun <name1> <factor1>  
  functional xcfun <name2> <factor2>

In addition to the name of the functional, it is necessary to tell TURBOMOLE whether the used functional is of GGA or MGGA type. Pure LDA functionals are currently not supported.

Available settings are:

Add the switch for either GGA or meta-GGA but not both in the same input!

List of available XCFun functionals (copied from XCFun documentation), in arbitrary order:

slaterx  -- Slater exchange  
beckex -- Becke exchange  
beckecorrx -- Becke GGA exchange  
ktx -- Keal-Tozer exchange  
pbex -- Perdew-Burke-Ernzerhof exchange  
tpssx -- TPSS original exchange functional  
m05x -- Truhlar M05 exchange  
m05x2x -- Truhlar M05-2X exchange  
m06x -- Truhlar M06 exchange  
m06x2x -- Truhlar M06-2X exchange  
m06lx -- Truhlar M06L exchange  
m06hfx -- M06-HF Meta-Hybrid Exchange Functional  
b97x -- B97 exchange  
b97_1x -- B97-1 exchange  
b97_2x -- B97-2 exchange  
b97_dx -- B97-D exchange ($disp3 in addition required)  
optx -- OPTX Handy & Cohen exchange GGA exchange functional  
optxcorr -- OPTX Handy & Cohen exchange -- correction part only  
brx -- Becke-Roussells exchange with jp dependence  
brxc -- Becke-Roussells exchange and correlation with jp dependence  
pw86xtot -- Perdew-Wang 86 GGA exchange including Slater part  
pw91x -- Perdew-Wang 1991 GGA Exchange Functional  
ldaerfx -- Short range exchange LDA functional  
vwn5c -- VWN5 correlation  
vwn3c -- VWN3 correlation  
lypc  -- LYP correlation  
pw91c -- PW91 Correlation  
pw92c -- PW92 LDA correlation  
pz81c -- PZ81 LDA correlation  
pbec -- PBE correlation functional  
vwn_pbec -- PBE correlation functional with VWN LDA correlation  
spbec -- Simplified PBE correlation functional for use with the SSB functionals  
tpssc -- TPSS original correlation functional  
revtpssc -- Revised TPSS correlation functional  
p86c -- P86C GGA correlation  
m05c -- M05 Meta-Hybrid Correlation Functional  
m05x2c -- M05-2X Meta-Hybrid Correlation Functional  
m06c -- M06 Meta-Hybrid Correlation Functional  
m06lc -- M06-L Meta GGA Correlation Functional  
m06x2c -- M06-2X Meta-Hybrid Correlation Functional  
csc -- Colle-Salvetti correlation functional  
brc -- Becke-Roussells correlation with jp dependence  
b97_1c -- B97-1 correlation  
b97_2c -- B97-2 correlation  
b97_dc -- B97-D correlation ($disp3 in addition required)  
b97c -- B97 correlation  
ldaerfc -- Short range correlation LDA functional  
pw91k -- PW91 GGA Kinetic Energy Functional  
btk -- Borgoo-Tozer kinetic energy functional  
tfk -- Thomas-Fermi Kinetic Energy Functional  
vW  -- von Weizsaecker kinetic energy  

Some common functionals are pre-defined in XCFun and their individual parts do not have to be set manually. Those aliases can be directly used as names with a following factor of 1.0:

blyp, pbe, bp86, kt1, kt2, kt3, pbe0, b3lyp, m06, m06-2x, m06L, b3lyp-g, b3p86, b97, b97d, olyp and some more.

Note that if the functional needs a portion of HF exchange, this has to be added manually in the control file using functional xcfun set-hybrid <number>

Example for B3-LYP using VWN3 instead of VWN5:

  functional xcfun set-gga  
  functional xcfun b3lyp-g 1.0  
  functional xcfun set-hybrid 0.2

The functionals described in this section can be used for ground state energies, gradients and frequency calculations as well as TDDFT spectra. TDDFT analytic gradients are not yet supported, please use the TURBOMOLE own functionals instead.

Notes about DFT-D3, gCP and functionals using those corrections

For details about the options of DFT-D3 please see section 6.5.

In the original TURBOMOLE implementation of the B97-D functional only energy and gradient calculations are possible due to missing higher derivatives of the functional itself. Using the XCFun version of B97-D, analytic 2nd derivatives using aoforceand TDDFT excited state energies are possible. The names in the $dft section are b97-d for the TURBOMOLE own version and b97d for the XCFun version. However, the total energies of those two flavours are slightly different due to the fact that the parameters used are either the originally published ones (TURBOMOLE) or re-computed (XCFun). For properties like geometries and frequencies the differences are negligible, but one should not mix the total energies.

The PBEh-3c functional needs, besides the functional name pbeh-3c also DFT-D3 dispersion correction including the three-body term and geometrical counterpoise correction method called gCP. For details see: Stefan Grimme, University Bonn. In order to get the full version of PBEh-3c, your control file has to include:

   functional pbeh-3c  
   gridsize   m4  
$disp3 -bj -abc

Note: gcp is automatically added if pbeh-3c functional is used, but the D3 part has to be switched on manually by adding $disp3 as given above.

To use HF-3c ( R. Sure, S. Grimme, J. Comput. Chem. 2013, 34, 1672–1685), an input without DFT functional (and without $dft keyword) but with DFT-D3 correction is required. Calculations with and without RI are possible to perform, but due to the very small basis set non-RI calculations are usually as efficient as those with RI. Note that it is important to use the ’Minix’ basis set and to select hf-3c as functional name for DFT-D3:

$disp3 -bj func hf-3c

The gCP correction (H. Kruse, S. Grimme, J. Chem. Phys. 2012, 136, 154101) will by default be added to the DFT-D3 correction term if pbeh-3c or hf-3c is selected.