Add Comprehensive JK Build+Screening Testing #2978
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR is designed to enable testing of a wide variety of combinations of
SCF_TYPE
,SCF_SUBTYPE
, andSCREENING
keywords available in Psi4. Of the currently-available JK tests, scf5 covers a wide variety of build methods, but only at a single screening type per method (density or csam, depending on the method). Meanwhile,test_erisieve.py
, after the updates introduced in #2973, tests a wide variety of screening types, but with limited testing in conjunction with different JK builds (the only tests that don't use the Python interface ofTwoBodyAOInt
directly, useSCF_TYPE=DIRECT
orDF
as the JK method for screening comparisons). This leaves a lot of untested JK build+screening combos, which may be potentially broken and uncaught by the CI as a result. As a matter of fact, such cases actually do exist in the code currently (e.g., CompositeJK methods + no screening).This PR adds a new pytest module,
test_comprehensive_jk_screening.py
. It is effectively an expanded version of the scf5 test module, testing one of the scf5 systems (singlet oxygen) with the same basis set, but also including different screening methods and algorithmic subtypes available in Psi4. Screening is assumed to have an insignificant impact on energy within the tolerance used, so all screening types for a given method use the same reference energy. Some combinations of method and screening type throw an exception by design; this is accounted for in the test by testing that such combinations do indeed throw an exception as expected. Other combinations of method and algorithm are broken at the moment and error out; these are simply skipped for now. They are all logged in the same spot, and can and will be addressed in future PRs.User API & Changelog headlines
Dev notes & details
test_comprehensive_jk_screening.py
, to test different combinations of JK build algorithms and ERI screening methods.Questions
test_comprehensive_jk_screening.py
be better placed intest_erisieve.py
? I placed the test in the former because I considered it large enough to warrant not having the quick pytest mark, but I'm ambivalent about where the test goes between those two test modules.Checklist
Status