Definition of the B3LYP functional in common QC programs I wanted to use custom functionals with Gaussian and came up with some interesting definitions of the B3LYP functional within Gaussian, Orca and Turbomole, ...

$$\small\begin{array}{lcccccc}
\hline
  &amp;  \text{Gaussian}  &amp;  \text{ORCA}  &amp; \text{Turbomole}  &amp;  \text{NWChem} &amp; \text{Molpro} &amp; \text{GAMESS(US)}\\
\hline
\text{HF}  &amp;  0.2  &amp;  0.2  &amp;  0.2  &amp;  0.2  &amp;  0.2  &amp;  0.2\\
\text{Slater}  &amp;  0.8  &amp;  0.8  &amp;  0.8  &amp;  0.8  &amp;  \color{red}{0.08}  &amp;  0.8\\
\text{Becke}  &amp;  0.72  &amp;  0.72  &amp;    0.72  &amp;  0.72  &amp;  0.72  &amp;  0.72\\
\text{VWN-x}  &amp;  {\color{red}1}  &amp;  {\color{red}{1}}  &amp;  0.19  &amp;  0.19  &amp;  0.19  &amp;  0.19\\
\text{LYP}  &amp;  0.81  &amp;  0.81  &amp;   0.81  &amp;  0.81  &amp;  0.81  &amp;  0.81\\
\hline
\end{array}$$

It seems to be clear, that all programs define it somehow similar, but there are also some points that made me curious about the definitions. Let's start with the overall structure of this functional:

$$\text{XC-Functional}=a E_x^\text{local}+(1-a)E_x^\text{HF}+b E_x^\text{non-local}+c E_c^\text{non-local}+(1-c) E_c^\text{local}$$

The Gaussian documentation for DFT inputs specifies how one could change the amounts of each "sub-functional" by using the IOp-Statements through:

IOp(3/76=mmmmmnnnnn) IOp(3/77=mmmmmnnnnn) IOp(3/78=mmmmmnnnnn)


Where mmmmm and nnnnn will get divided by 10000 and 3/76=$P_1P_2$, 3/77=$P_3P_4$ and 3/88=$P_5P_6$. Those $P_{1,..,6}$ values are part of the following equation, which is a modified version of the equation above.

$$\text{XC-Functional}=P_2 E_X^\text{HF} + P_1 \left(P_4 E_X^\text{Slater} + P_3\Delta E_x^\text{non-local}\right) + P_6 E_C^\text{local} + P_5 \Delta E_C^\text{non-local}$$

Combining both, this yields: $P_1 = \{1,0\}$, $P_2 = 1-a$, $P_3 = b$, $P_4 = a$, $P_5 = c$ and $P_6 = 1-c$.



Now looking at Gaussian and ORCA, they both use 100% VWN and 81% of LYP, which should actually be combined to give 100% (instead of 181%) as is done by all other mentioned programs through using 19% VWN and 81% LYP.

It seems, that I am lacking some important information to understand that definitions in both, Gaussian and ORCA, and I hope seriously, that someone can enlighten me.



PS My discussion with Martin came up with the possibility, namely that there might be some missing brackets in the second equation, giving the following:

$$\text{XC-Functional}=P_2 E_X^\text{HF} + P_1 \left(P_4 E_X^\text{Slater} + P_3\Delta E_x^\text{non-local}\right) + P_6 \mathbf{{\color{red}(}}(1-P_5)E_C^\text{local} + P_5 \Delta E_C^\text{non-local}\mathbf{{\color{red})}}$$



Appendix: Information from the program output or the documentary


Gaussian 09 Rev. A.02 output

IExCor=  402 DFT=T Ex=B+HF Corr=LYP ExCW=0 ScaHFX=  0.200000
ScaDFX=  0.800000  0.720000  1.000000  0.810000

ORCA 3.0.3 output

Fraction HF Exchange ScalHFX         ....  0.200000
Scaling of DF-GGA-X  ScalDFX         ....  0.720000
Scaling of DF-GGA-C  ScalDFC         ....  0.810000
Scaling of DF-LDA-C  ScalLDAC        ....  1.000000
Perturbative correction              ....  0.000000
NL short-range parameter             ....  4.800000

Turbomole 7 define

 b3-lyp          | HYB  | 0.8S+0.72B88   | 0.19VWN(V)     | 1-3,5,6,10
                 |      | +0.2HF         | +0.81LYP       |
 b3-lyp_Gaussian | HYB  | 0.8S+0.72B88   | 0.19VWN(III)   | 1-3,5,6,10
                 |      | +0.2HF         | +0.81LYP       |

NWChem
Molpro

B3LYP   EXACT:B88:DIRAC:LYP:VWN5    0.2:0.72:0.08:0.81:0.19


the 0.08 is probably a typo
GAMESS(US)
As a former contributor to Orca who had access to Turbomole sources before that, I can say with confidence that the internal definitions of B3LYP and B3LYP_gaussian are consistent among them and Gaussian (where available). So no calculations should go wrong.

While I cannot speak for Gaussian, for Orca I am certain that the ScalLDAC parameter is badly printed here (and not relevant for many of the newer functionals).

As to what you identified as a typo in Molpro -- It may be that B88 was shoe-horned into the more mainstream definition of GGAs, which can be loosely worded as "a multiplicative correction to the LDA energy" (the energy density, actually). Becke, on the other hand, described the B88 functional originally as an additive correction ($\Delta E$). NWChem makes the distinction explicit in the keyword nonlocal, see the manual section on exchange-correlation potentials. So for Molpro, the exchange accounting should read: $0.2+0.72+0.08=1$, whereas the others use: $0.2+0.8=1$ and keep the $0.72$ implicit.