Apparent bug in Hartree-Fock energies for selected cases with diffuse basis sets


Just Got Here
Hello,

I have used the following input to compute a single point Hartree-Fock energy value for the benzene molecule using the aug-cc-pVDZ basis set.

geometry units angstrom
symmetry c1
 H               0.000    2.470    0.000
 H               2.139    1.235    0.000
 H               0.000   -2.470    0.000
 H              -2.139   -1.235    0.000
 H               2.139   -1.235    0.000
 H              -2.139    1.235    0.000
 C               0.000    1.390    0.000
 C               1.204    0.695    0.000
 C               0.000   -1.390    0.000
 C              -1.204   -0.695    0.000
 C               1.204   -0.695    0.000
 C              -1.204    0.695    0.000
end

basis spherical
  H library aug-cc-pvdz
  C library aug-cc-pvdz
end

scf
  thresh 1.0e-08
end

task scf


The HF energy obtained here is wrong: -230.72826399 Hartree

Can someone reproduce this (wrong) number?

The correct number should be -230.72835825 Hartree (confirmed with DALTON, GAMESS, MOLCAS, ORCA, Turbomole, Molpro, Gaussian, ...). So the wrong number obtained above has an error of 0.0001 Hartree which is clearly more than the usual numerical noise.

I see this error with NWChem 6.6 and 6.8, different compilers (Intel, GCC), different math libraries (MKL, Cray LibSci), different sizes of the BLAS/LAPACK integer size arguments (4-Byte and 8-Byte), and even when compiling without compiler optimizations. I also tried stricter settings for THRESH or TOL2E. Nothing helped to prevent the wrong energy result. So I think there must be something wrong in the code.

The following two observations might help to track down the bug. When changing the basis set from "aug-cc-pVDZ" to "cc-pVDZ" for either carbon "C" or hydrogen "H", then the HF energies obtained with this basis set combination are correct!
I also computed HF/aug-cc-pVDZ energies for larger and chemically different systems. Here I also obtained correct energy values as long as no aromatic part was present in the system. So maybe something goes wrong when integrals involving many diffuse functions are computed or screened for aromatic systems?

I would be glad if maybe one of the NWChem developers could have a look at this problem and provide a fix.


Sincerely,
Christian

Forum Regular
The issue here is the handling of (nearly) linear dependent basis functions. The default threshold for linear dependence in NWChem is 10^{-5}, while it is 10^{-6} in Gaussian (and I assume the same in the other codes you mention). With the default threshold, NWChem flags 3 vectors as linearly dependent. Changing the threshold to 10^{-6}, no vectors are flagged as linearly dependent, and I get an energy of -230.72835824 Hartree. To change the linear dependence threshold to 10^{-6} add

set lindep:tol 1.e-6

to your input.

Just Got Here
Hi Sean,

Indeed, I have seen the message about linear dependencies in the output. But it was not clear that corresponding vectors will be ignored.

Now it works, thank you for your advice. (This keyword combination should go into the official documentation ...)

Sincerely,
Christian


Forum >> NWChem's corner >> General Topics