The ebcc
package implements various coupled cluster (CC) models for both purely electronic and coupled electron-boson models, with a focus on generality and model extensibility.
For a summary of the implemented models, see the FEATURES.md file.
From PyPI:
pip install ebcc
From source:
git clone https://github.com/BoothGroup/ebcc
pip install .
The implemented models are built upon the mean-field objects of pyscf
:
from pyscf import gto, scf
from ebcc import EBCC
mol = gto.M(atom="H 0 0 0; H 0 0 1", basis="cc-pvdz")
mf = scf.RHF(mol)
mf.kernel()
ccsd = EBCC(mf, ansatz="CCSD")
ccsd.kernel()
Many ansatzes for both fermionic and electron-boson coupled cluster calculations are available. For more details see the tutorials
and examples
directories.
By default, the tensor backend uses numpy
for all array classes and contraction routines.
A number of alternative backends are supported, offering varied frameworks such as parallelism, GPU acceleration, and automatic differentation.
For more details, see the corresponding tutorial.
Additionally, mixed precision calculations are supported, which is also detailed in the following tutorial.
The models implemented are generated algorithmically from expressions over second quantized operators. The scripts for generating these models are found in the codegen
directory on the bootstrap
branch.
User-inputted models should operate seamlessly with the solvers by adding files under ebcc/codegen
, so long as they satisfy the interface.