This PR reformats basically the entirety of ebcc, and whilst this is still a work-in-progress I think it is nearly ready to merge into master, as it supports basically all of what the original code supported. The one main thing that is missing is:
[ ] EOM for bosonic GCCSD models.
Some notes on the changes:
Adds generated, optimised code for restricted, unrestricted and generalised spin symmetries
Adjusts some of the syntax and options, the ansatz is now defined using the arguments:
fermion_exctiations: String representation of the coupled cluster ansatz for the fermionic amplitudes, i.e. "SD", "SDT", "2", etc.
boson_excitations: String representation of the coupled cluster ansatz for the bosonic amplitudes, as above
fermion_coupling_rank: Integer rank of the fermionic part of the coupling term
boson_coupling_rank: Integer rank of the bosonic part of the coupling term
Tests against data from old code, and against PySCF for some purely fermionic ansatzes
Conversion routines for R->U->G
Initialisation is now with a PySCF mean-field - I can add functionality to fake this if we want array input
Doc strings are mostly pretty complete and dense
Summary of currently supported models:
RHF and UHF:
CC2
CCSD
CCSD-S-1-1
CCSD-SD-1-1
CCSD-SD-1-2
energy
✓
✓
✓
✓
✓
amplitudes
✓
✓
✓
✓
✓
lambdas
✓
✓
✓
✓
✓
fermionic RDMs
✓
✓
✓
✓
✓
bosonic RDMs
✓
✓
✓
equation-of-motion
GHF:
CC2
CCSD
CCSD-S-1-1
CCSD-SD-1-1
CCSD-SD-1-2
energy
✓
✓
✓
✓
✓
amplitudes
✓
✓
✓
✓
✓
lambdas
✓
✓
✓
✓
✓
fermionic RDMs
✓
✓
✓
✓
✓
bosonic RDMs
✓
✓
✓
equation-of-motion
✓
Future features:
More tests: currently only tests against old code and PySCF, need to cover the rest of the models with regression tests
More models: CCSD(T), CCSDt, CC3, LCC...
EOM for RHF and UHF: big methodological problem with the spin integration
More examples: there are only a couple in there as of now
Universal chkfile feature for dumping/loading calculations
This PR reformats basically the entirety of
ebcc
, and whilst this is still a work-in-progress I think it is nearly ready to merge into master, as it supports basically all of what the original code supported. The one main thing that is missing is:Some notes on the changes:
fermion_exctiations
: String representation of the coupled cluster ansatz for the fermionic amplitudes, i.e. "SD", "SDT", "2", etc.boson_excitations
: String representation of the coupled cluster ansatz for the bosonic amplitudes, as abovefermion_coupling_rank
: Integer rank of the fermionic part of the coupling termboson_coupling_rank
: Integer rank of the bosonic part of the coupling termSummary of currently supported models:
RHF and UHF:
GHF:
Future features: