Skip to content

Conversation

loriab
Copy link
Member

@loriab loriab commented Apr 8, 2022

Description

Kudos to @andysim for pointing out in January the exact 13 lines of code to change for the vast preponderance of the gaussian to standard ordering switch.

As far as timeline, there's no particular reason this needs to be in for v1.6. But if we could avoid hosting forever one fewer set of L2 packages for a single release, that'd be kind of nice. But fixing the output formats (i.e., fchk, qcsk, molden, fcidump) is likely to take some careful work.

If anyone would like to tackle a part of this, go for it.

Todos

  • current test status (pretty impressive, imo)

    • after g2g commit
      • ctest: 99% tests passed, 3 tests failed out of 487
      • pytest: 12 failed, 2971 passed, 270 skipped, 269 xfailed
    • after first solidharmonics.cc commit
      • ctest: 90% tests passed, 50 tests failed out of 487
      • pytest: 43 failed, 2911 passed, 208 skipped, 269 xfailed
  • only Linux in CI b/c only it has an appropriate L2 conda package built

  • categories to examine

    • tdscf
    • cubeprop
    • fchk
    • qcsk atomicresult.wavefunction
    • mbis
    • molden
    • fcidump
    • nbo
  • fails pytest

    • tdscf
    • dft_block_schemes
    • mcmurchie_davidson_consistency_angmom (fails because ref data are deposited in Gaussian ordering)
    • test_rhf_fchk[df-rhf-dft)]
    • test_rhf_fchk[conv-rhf-dct]
    • test_rhf_fchk[df-rhf-omp2]
    • test_uhf_fchk[df-uhf-mp2]
    • test_rhf_fchk[conv-rhf-ccsd]
    • test_uhf_fchk[df-uhf-dft]
    • test_uhf_fchk[conv-uhf-ccsd]
    • test_rhf_fchk[df-rhf-mp2]
    • test_uhf_fchk[df-uhf]
    • test_rhf_fchk[df-rhf)]
    • test_rhf_fchk[conv-rhf-cc2]
  • fails ctest

    • 103 - cubeprop (Failed)
    • 104 - cubeprop-frontier (Failed)
    • 123 - density-screen-2 (Timeout)
    • 161 - dft-grad-lr1 (Failed)
    • 162 - dft-grad-lr2 (Failed)
    • 163 - dft-grad-lr3 (Failed)
    • 168 - dft-b2plyp (Failed)
    • 170 - dft-ghost (Failed)
    • 171 - dft-grad-meta (Failed)
    • 173 - dft-freq-analytic (Failed)
    • 174 - dft-grad1 (Failed)
    • 175 - dft-grad2 (Failed)
    • 177 - dft-b3lyp (Failed)
    • 178 - dft1 (Failed)
    • 179 - dft-vv10 (Failed)
    • 180 - dft1-alt (Failed)
    • 181 - dft2 (Failed)
    • 182 - dft3 (Failed)
    • 183 - dft-omega (Failed)
    • 226 - frac-ip-fitting (Failed)
    • 228 - frac-traverse (Failed)
    • 234 - mbis-1 (Failed)
    • 235 - mbis-2 (Failed)
    • 236 - mbis-3 (Failed)
    • 237 - mbis-4 (Failed)
    • 238 - mbis-5 (Failed)
    • 239 - mbis-6 (Failed)
    • 245 - mints3 (Failed) (fails because ref data are deposited in Gaussian ordering)
    • 287 - olccd2 (Failed)
    • 302 - omp3-3 (Failed)
    • 307 - opt-lindep-change (Failed)
    • 321 - opt13 (Failed)
    • 348 - pywrap-checkrun-rhf (Failed)
    • 350 - pywrap-checkrun-uhf (Failed)
    • 366 - sapt-dft-api (Failed)
    • 367 - sapt-dft-lrc (Failed)
    • 390 - scf-level-shift-rks (Failed)
    • 397 - soscf-dft (Failed)
    • 401 - sapt-dft1 (Failed)
    • 402 - sapt-dft2 (Failed)
    • 405 - dft-custom (Failed)
    • 425 - cubeprop-esp (Failed)
    • 434 - scf-coverage (Failed)
    • 435 - dft-custom-dhdf (Failed)
    • 437 - dft-custom-mgga (Failed)
    • 438 - dft-custom-gga (Failed)
    • 446 - tdscf-3 (Failed)
    • 447 - tdscf-4 (Failed)
    • 449 - tdscf-6 (Failed)
    • 459 - linK-2 (Timeout)
    • 324 - opt-irc-2 (Failed)

Checklist

Status

  • Ready for review
  • Ready for merge

@andysim
Copy link
Member

andysim commented Apr 8, 2022

The DFT failures are almost certainly because of Gau2Grid using the wrong ordering convention. Thankfully CCA is supported so it should be fixable by a simple reconfiguration.

@maxscheurer
Copy link
Contributor

For g2g, maybe just this line needs to be changed?

@andysim
Copy link
Member

andysim commented Apr 8, 2022

For g2g, maybe just this line needs to be changed?

That looks exactly right to me - good call. Switching GG_SPHERICAL_GAUSSIAN to GG_SPHERICAL_CCA should be all that's needed for the DFT tests.

@maxscheurer
Copy link
Contributor

For g2g, maybe just this line needs to be changed?

Confirmed to work locally. This fixes a lot of the failed tests above 🎉

maxscheurer and others added 2 commits April 8, 2022 14:49
Co-authored-by: Andy Simmonett <andy.simmonett@gmail.com>
@loriab loriab mentioned this pull request Apr 9, 2022
Co-authored-by: Andy Simmonett <andy.simmonett@gmail.com>
@robparrishqc
Copy link

robparrishqc commented May 21, 2022

I don't comment here all that often anymore, which is bittersweet (and I very much miss both my colleagues on PSI4 and the Vortex). We have gone through my old notes on CCA (sketch at best, we know), and many nested references therein. For Cartesian AOs, CCA matters - this lets you use a single normalization coefficient for everything, and tolerate non-normalized off-diagonal cartesian tensor components (i.e, xx is normalized in D, xy is not normalized in D, xxx is normalized in F, xxy or xyz is not normalized in F) - Jet taught me this and it is one of the coolest tricks in the book. For spherical AOs, as far as we can tell, there is no CCA convention except that everything be normalized (as literally all codes do). The one "CCA" paper we can find on this topic itself glancingly cites an older Schlegel / Frisch paper (I think before the big happening), which itself is outdated by about > two dozen articles on solid harmonics. Everyone who codes integrals deals with basis ordering - what you shudder about is weird normalization factors (particularly non-diagonal ones), not rigid permutations.

The message is this: I am not convinced there is a standard. So maybe not optimal to follow to follow an implied one. Show me a reference of a real, used standard, and Lightspeed and Tachyon will be there tomorrow.

report (7).pdf
jcc.20815.pdf
sh.pdf

@robparrishqc
Copy link

Last amplification - the JCC above does say, buried in some text:

Screen Shot 2022-05-20 at 8 37 52 PM

But I've never heard of anyone using that order - it is anti-lexical. And while I have nothing but respect for the really good people who wrote that paper, nobody uses that standard (that one has 25 citations, PSI4 has 2000).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants