Skip to content

Correct local exchange terms in rCAM-B3LYP.

James Spencer requested to merge jsspencer/libxc:fix-cam-b3lyp-params into master

The local exchange terms in rCAM-B3LYP are:

(1 - \alpha) E_x^{Slater} + c^{B88} \Delta E_x^{B88} - \beta E_x^{LR,B88} \newline
= (1 - \alpha - c^{B88}) E_x^{Slater} + c^{B88} E_x^{B88} - \beta E_x^{LR,B88} \newline 
= (1 - \alpha - c^{B88}) E_x^{Slater} + (c^{B88} - \beta) E_x^{B88} + \beta E_x^{SR,B88}

as \Delta E_x^{B88} = E_x^{B88} - E_x^{Slater}.

Yanai et al and Cohen et al use a different convention for alpha and beta than libxc and XC_GGA_X_ITYH computes the short-range contribution from B88 rather than the long-range term. This amounts to defining:

\alpha' = \alpha + \beta \newline
\beta' = -\beta

where the primes indicate the libxc variables of the same name, and hence the local terms in the X functional are:

(1 - \alpha' - \beta' - c^{B88}) E_x^{Slater} + (c^{B88} + \beta') E_x^{B88} - \beta' E_x^{SR,B88}

rather than the form currently used:

(1 - \alpha' - c^{B88}) E_x^{Slater} + c^{B88} E_x^{B88} - \beta' E_x^{SR,B88}

Merge request reports