Utilities for near-term applications of quantum computing in chemistry and materials science.
This repository currently contains a lightweight, template-derived QCANT package. The public API is small and intended to grow as project modules are added.
You can install QCANT from PyPI:
pip install QCANTQCANT requires scientific Python dependencies (installed automatically when you pip install QCANT):
numpy<2,scipy<2pennylanepyscfautoray<0.7
For development (recommended: conda env for the full stack):
conda env create -f devtools/conda-envs/qcant.yaml
conda activate qcant
pip install -e . --no-depsFor development (pip/venv):
pip install -e .To enable the optional Qulacs simulator backend:
pip install -e ".[qulacs]"For users (once QCANT is published to PyPI):
pip install QCANTThis repo is configured to publish to PyPI from GitHub Actions using Trusted Publishing.
- Create the project on PyPI and enable "Trusted Publishing" for:
- Owner:
srivathsanps-quantum - Repo:
QCANT - Workflow:
publish-pypi.yml
- Owner:
- Tag a release (tag must start with a digit, e.g.
1.0.0) and push the tag:
git tag 1.0.0
git push origin 1.0.0That tag push triggers the publish workflow.
import QCANT
print(QCANT.canvas())QCANT also exposes optional Qulacs-backed exact-state routines for the simulator-heavy algorithms:
QCANT.qkud_qulacsQCANT.qrte_qulacsQCANT.qrte_pmte_qulacsQCANT.adapt_vqe_qulacsQCANT.cvqe_qulacs
The Qulacs path is aimed at reducing simulator overhead rather than replacing the chemistry stack. PySCF and PennyLane are still used for Hamiltonian and active-space construction, while Qulacs handles the state evolution and expectation-value hot loops.
The current speed-focused implementation does three main things:
- compiles PennyLane chemistry gates once into reusable Qulacs parametric circuits
- uses Qulacs backprop for native ADAPT-VQE gradients
- reduces CVQE inner optimization by solving the selected-determinant coefficients in the current reference space and optimizing only the ansatz parameters
For larger exact-state runs, prefer evolution_mode="trotter" in the Qulacs
QRTE/QKUD routines. The "sparse" mode still materializes the Hamiltonian
matrix and is not the scalable choice near the 16-20 qubit range.
Hosted documentation:
The documentation lives in docs/ and is built with Sphinx:
cd docs
make htmlThe output will be in docs/_build/html.
Copyright (c) 2025, Asthana Lab
Project based on the Computational Molecular Science Python Cookiecutter version 1.11.