-
Notifications
You must be signed in to change notification settings - Fork 467
change solid harmonic ordering from gaussian to standard #2537
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
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. |
For g2g, maybe just this line needs to be changed? |
That looks exactly right to me - good call. Switching |
Confirmed to work locally. This fixes a lot of the failed tests above 🎉 |
Co-authored-by: Andy Simmonett <andy.simmonett@gmail.com>
Co-authored-by: Andy Simmonett <andy.simmonett@gmail.com>
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. |
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)
99% tests passed, 3 tests failed out of 487
12 failed, 2971 passed, 270 skipped, 269 xfailed
90% tests passed, 50 tests failed out of 487
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
fails pytest
fails ctest
Checklist
Status