B3LYP* functional

Nowadays, reproducing results from a paper is extremely difficult:

  • There are too many methods, too many software with different implementation. Sometimes we can find “wrong” information from the manual or “experienced” users.
  • Computational details are poorly described, sometimes they are hidden by the authors.
reproducibility-graphic-online1
Source: http://www.nature.com/news/1-500-scientists-lift-the-lid-on-reproducibility-1.19970

Today, I will show you an example with the B3LYP* functional.

I’m preparing a manuscript with an ex-colleague using different DFT functional, including the B3LYP* function. This functional has 15% Hartree-Fock exchange instead of 20% like in B3LYP. My ex-colleague used Orca for all DFT calculations. Unfortunately, he left academia, and also left a big dark-hole in my heart for me to finish his calculations. I was struggling with his B3LYP* data, my numbers with Turbomole are completely different.

I decide to (i) look at the original paper of Reiher et al. describing B3LYP*, (ii) google the answer from different sources, and (iii) do it myself with a small model (good old H2O).

From the paper of Reiher et al. I know it has 15% HF exchange. That’s all!! B3LYP has two flavors, either using VWN5 or VWN3 correlation. Which one? It was not described in the paper.

After testing different settings, I finally provide you the B3LYP* functional using either VWN3 or VWN5 correlation:

Gaussian

Per Siegbahn provided the answer for Gaussian in many of his publications. Great! I believe that this is the correct one for Gaussian

blyp IOp(3/76=1000001500) IOp(3/77=0720008500) IOp(3/78=0810010000)

or
bv5lyp IOp(3/76=1000001500) IOp(3/77=0720008500) IOp(3/78=0810010000)

Bagno et al. used a completely different IOp. This is BS!

B3LYP IOp(3/76 = 1000001500) IOp(3/77 = 0720008000) IOp(3/78 = 0810010000)

Turbomole

$dft
functional xcfun set-gga
functional xcfun slaterx 0.13
functional xcfun beckex 0.72
functional xcfun vwn3c 0.19
functional xcfun lypc 0.81
functional xcfun set-hybrid 0.15

or
$dft
functional xcfun set-gga
functional xcfun slaterx 0.13
functional xcfun beckex 0.72
functional xcfun vwn5c 0.19
functional xcfun lypc 0.81
functional xcfun set-hybrid 0.15

Orca

!B3LYP/G
%method
ScalHFX = 0.15
ScalDFX = 0.85
end

or
!B3LYP
%method
ScalHFX = 0.15
ScalDFX = 0.85
end

Be careful, the instruction on the Orca input library is wrong and some comments on the Orca forum are BS!

Using there settings, I manage to generate the same total energy for the water molecule. The numbers are also checked with libxc and Erkale.

Now I think why I have different numbers from my colleague. Basically in Orca, he used that ScalDFX = 0.85, which gave very different total energy.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s