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 has TDDFT triplets for LDA and GGA functionals. (Psi does not currently support any TDDFT for meta functionals.) This requires lots of moving parts, so this PR serves as a reference for how they all fit together. For ease of reviewing, I'll have smaller PRs that pull off independent pieces for analysis.
While I'm waiting for reviews, I'll update comments to show exactly how I know these spin-integration formulae are correct, for the benefit of future debuggers.
Closes #2841.
Status
There are four parts that I can split into separate PRs for reviewer convenience. Then I can bring in this PR.
User API & Changelog headlines
Theoretical Analysis
Why were DFT triplets harder than HF triplets? To understand this, we need to understand both the origin of the triplet matrix and the spin properties of the relevant matrix elements.
Dev notes & details
potential_attribute. Individual classes may need to access signatures of the specific subclass they have. Instead, subclasses now have a specific subclass for theirpotential_attribute if applicable. An abstract method has been added to the HF base class to get the potential when the subclass doesn't change the method signature.compute_functionalwill build a UKS functional, compute for that, and cannibalize the pieces to get the properly triplet spin-integrated quantity.DAXPBYadded.Checklist
test_tdscf_excitations.pypasses. All 70 of the tests.Status