Metadata-Version: 2.1
Name: ebcc
Version: 1.2.2
Summary: Coupled cluster calculations on electron-boson systems
Keywords: quantum,chemistry,electronic,structure,coupled,cluster,electron,boson,ccsd
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: numpy (>=1.19.0)
Requires-Dist: scipy (<=1.10.0)
Requires-Dist: pyscf (>=2.0.0)
Requires-Dist: h5py (>=3.0.0)
Provides-Extra: dev
Requires-Dist: black (>=22.6.0) ; extra == 'dev'
Requires-Dist: isort (>=5.10.1) ; extra == 'dev'
Requires-Dist: coverage[toml] ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'

# ebcc: Coupled cluster calculations on electron-boson systems

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.

### Installation

From source:

```bash
git clone https://github.com/BoothGroup/ebcc
pip install .
```

### Usage

The implemented models are built upon the mean-field objects of [`pyscf`](https://github.com/pyscf/pyscf):

```python
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)
ccsd.kernel()
```

### Code generation

The models implemented are generated algorithmically from expressions over second quantized operators. Expressions are generated using [`qwick`](https://github.com/obackhouse/qwick) and [`pdaggerq`](https://github.com/edeprince3/pdaggerq) with optimisation of common subexpressions and contraction order achieved using [`drudge`](https://github.com/tschijnmo/drudge) and [`gristmill`](https://github.com/tschijnmo/gristmill).
User-inputted models should operate seamlessly with the solvers by adding files under `ebcc/codegen`, so long as they satisfy the interface.
