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
Adds ADC(2) reference implementations #105
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks really great overall! I don't have much ADC experience. Do you have any recommendations for reviewers? If not we can ping the rest of the maintainers here.
I can ask either of the |
@obackhouse That would be fantastic on the |
@maxscheurer Thanks for the review! Can you approve and merge? |
I have no privileges to merge PRs 😄 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks again for the contribution!
Description
This PR adds reference implementations for the ADC(2) method, with a separate implementation for ionization potentials, electron affinities and excitation energies. The implementations are based on an RHF reference, but use spin-orbitals as the equations are nicer there. There is also a helper script with a function to perform the Davidson algorithm for an arbitrary matrix, or function defining a matrix-vector product. The latter is adapted from the EOM-CCSD implementation. These are not particularly efficient, but should be a simple enough showcase of the iterative eigensolver to keep the scaling down.
I have tested these scripts against PySCF for the IP and EA, and against adcc for the EE. The codes will not account for degeneracy in
n_states
nor separate singlets and triplet EEs as adcc does, but the energies themselves match.What are your new additions? Please provide a brief list.
Any questions for the community?