NREL / ESIFHPC3

The authoritative collection of benchmarks for NREL's ESIF-HPC-3 system procurement are available here.
3 stars 3 forks source link

[NWChem] aug-cc-pVTZ should use spherical angular functions not cartesian ones #1

Closed jeffhammond closed 3 years ago

jeffhammond commented 3 years ago

Problem

Dunning basis sets were designed to use spherical (5f), not cartesian (6d), angular basis functions. Using cartesian introduces an additional s-function [1,2]. Your NWChem benchmark doesn't specify the angular type and the default is cartesian (which is appropriate for Pople-style 6-31G and friends).

Fixing this will change the DFT total energy because the extra s function reduces the ground state energy because of the variational principle, but the new energy will be the more correct one.

Solution

The trivial fix is to change https://github.com/NREL/ESIFHPC3/blob/master/NWChem/dft.nw#L44 to

 basis spherical
  * library aug-cc-pvtz  
 end

References

  1. http://vergil.chemistry.gatech.edu/resources/qchb/node2.html Pure Angular Momentum vs. Cartesian Functions: The Pople 6-31G* basis is defined for 6 Cartesian d-type functions, whereas the Dunning correlation-consistent basis sets are defined for pure angular momentum (5d, 7f, etc.) functions.
  2. http://www.grant-hill.group.shef.ac.uk/ccrepo/philosophy.html The cc basis sets are: ... Based on spherical (rather than Cartesian) orbitals.
chchang6 commented 3 years ago

Hi Jeff, thanks for adding this and the references. Given that we're already underway with the RFP, and that I will assume that a run that validates with the extra s function would also be able to validate without it (it seems like it would be an edge case where the hardware or the compilers, and not the application code itself, produced valid Cartesian results but invalid spherical results), we're going to leave this as the original formulation for now so that we don't add complexity. We can release a correction if needed, however, and will fix it in our internal repo.

As a matter of application engineering, I would not myself have created a built-in basis set option that used the wrong formulation by default. Perhaps something to consider for NWChemEx?

jeffhammond commented 3 years ago

I too wish NWChem would set the default correctly but as you know, it would create a serious issue with reproducibility. Best case scenario at this point is a warning in the output file recommending the right setting.

I don’t know what NWChemEx is planning to do here. I’m only tangentially involved in that project.

chchang6 commented 3 years ago

Thanks Jeff. As to reproducibility, probably no greater problems than those caused by the 5 flavors of VWN and the B3LYP dependency thereon, which the community accepted once they knew about it. As long as NWChem didn't turn off the ability for users to choose a non-default option and documented it adequately, we could reproduce correlation-consistent basis results with an extra s function any time--we would just have to explicitly acknowledge the wrong way, rather than implicitly accepting it.

(BTW, I'm in no way laying responsibility for anything at your feet, and appreciate you pointing the issue out!)