⚠️ : This is research-level code implementing the methods described in "Reducing the Cost of Unitary Coupled Cluster via Active Space Partitioning". It is intended for academic and scientific exploration.
A Python library for quantum chemistry calculations implementing electronic structure methods, with a focus on Unitary Coupled Cluster (UCC) theory and active space partitioning. This package implements an active space UCC/MP2 approach combining UCC within a chosen active space, while handling external excitations at the MP2 level. Please note: the current implementation is quite slow and intended for prototyping, benchmarking, and method development rather than high-throughput calculations.
- Interacting Variant (i-UCC/MP2): Couples internal and external amplitudes for higher accuracy in weakly and moderately correlated systems.
- Composite Variant (c-UCC/MP2): Sums separate internal and external contributions.
- Orbital Flexibility: Supports calculations using both Canonical Orbitals (COs) and MP2 Frozen Natural Orbitals (FNOs).
- Note: Benchmarks indicate that COs provide superior stability in the interacting framework by avoiding non-diagonal Fock blocks in the external space.
- UCCSD(4): Unitary Coupled Cluster Singles and Doubles truncated at the fourth order of MBPT.
- UCCSD[n]: Unitary Coupled Cluster Singles and Doubles truncated at different BCH commutator orders.
- CCSD: Standard Coupled Cluster Singles and Doubles implementation.
- Convergence Acceleration: Includes DIIS (Direct Inversion in Iterative Subspace) to ensure robust iterative solutions.
git clone https://github.com/prateekvaish/est.git
cd est
pip install -e .- Python >= 3.9
- NumPy
- PySCF (for integral generation and mean-field references)
import numpy as np
from pyscf import gto, scf
from est.core.integrals import get_integrals
from est.methods.uccsd4 import UCCSD4
# Set up a molecule
mol = gto.Mole()
mol.atom = 'H 0 0 0; F 0 0 1.1'
mol.basis = 'cc-pvdz'
mol.build()
# Run Hartree-Fock
mf = scf.RHF(mol)
mf.kernel()
# Get integrals
f, g = get_integrals(mf)
# Run UCCSD4 with DIIS convergence acceleration
uccsd = UCCSD4(f, g, mol.nelectron,
max_iter=100,
conv_tol=1e-8,
diis_space=6,
diis_start_cycle=4)
uccsd.kernel()
uccsd_energy = uccsd.get_energy()
This project is licensed under the BSD-3 License - see the LICENSE.md file for details.
If you use this software in your research, please cite:
@software{est2026,
title={est for quantum chemistry calculations},
author={Vaish, Prateek},
year={2026},
url={https://github.com/prateekvaish/est.git}
}- Funding: NSF CTMC CAREER Award 2046744.
- Infrastructure: Center for Computation and Visualization, Brown University.
- Built on top of PySCF for molecular calculations
- Algebraic Derivations: Generated using
pdaggerqandWick&d.