Skip to main content

QC Lab: A package for quantum-classical modeling

QC Lab is a Python package designed for implementing and executing quantum-classical (QC) dynamics simulations. It offers an environment for developing physical models and QC algorithms which enables algorithms and models to be combined arbitrarily. QC Lab comes with a variety of already implemented models and algorithms which we hope will encourage new researchers to explore the field of quantum-classical dynamics. Users that implement their own models and algorithms will have the opportunity to contribute them to QC Lab to form a growing library of quantum-classical dynamics tools.

As of QC Lab v1.1.0, QC Lab comes with the ability to simulate on-the-fly ab initio nonadiabatic dynamics.

QC Lab is developed and maintained by the Tempelaar Team in the Chemistry Department of Northwestern University in Evanston, Illinois, USA.

The documentation for QC Lab can be found at https://tempelaar-team.github.io/qclab/.

Capabilities

Dynamics Algorithms

The following algorithms are implemented making use of the complex-classical coordinate formalism established in [1].

  • Mean-field (Ehrenfest) dynamics [2]

  • Fewest-switches surface hopping (FSSH) dynamics [3]

  • MultiState Mapping Approach to Surface Hopping (MSMASH) dynamics [9]

  • Ab Initio Mean-Field dynamics

  • Ab Initio FSSH dynamics

Model Systems

  • Spin-boson model [4]

  • Holstein lattice model [5]

  • Fenna-Matthews-Olson (FMO) complex [6, 7]

  • Tully problems I, II, & III [8]

  • Atomistic Ab Initio model

Installing QC Lab

QC Lab can be installed from the Python Package Index (PyPI) by executing:

pip install qclab

To install QC Lab without h5py, numba, or ASE support, execute:

pip install qclab --no-deps
pip install numpy tqdm

to install the remaining required dependencies manually.

QC Lab can be installed from source by downloading the latest release, unpacking it, and executing:

pip install ./

from inside its topmost directory (where the pyproject.toml file is located).

QC Lab doesn’t enforce third-party dependencies. If you hit resolver conflicts or install errors, the quickest fix is to install in a clean Python environment (via venv or conda). Alternatively, reconcile package versions in your existing environment until the requirements are satisfied.

Using AI with QC Lab

The QC Lab source code comes equipped with a Claude skill. It is located in ai/claude/qclab and symlinked to .claude/skills/qclab for autodiscovery by Claude code.

Bibliography

  1. Miyazaki, K.; Krotz, A.; Tempelaar, R. Mixed Quantum–Classical Dynamics under Arbitrary Unitary Basis Transformations. J. Chem. Theory Comput. 2024, 20 (15), 6500–6509. https://doi.org/10.1021/acs.jctc.4c00555.

  2. Tully, J. C. Mixed Quantum–Classical Dynamics. Faraday Discuss. 1998, 110 (0), 407–419. https://doi.org/10.1039/A801824C.

  3. Hammes‐Schiffer, S.; Tully, J. C. Proton Transfer in Solution: Molecular Dynamics with Quantum Transitions. J. Chem. Phys. 1994, 101 (6), 4657–4667. https://doi.org/10.1063/1.467455.

  4. Tempelaar, R.; Reichman, D. R. Generalization of Fewest-Switches Surface Hopping for Coherences. J. Chem. Phys. 2018, 148 (10), 102309. https://doi.org/10.1063/1.5000843.

  5. Krotz, A.; Provazza, J.; Tempelaar, R. A Reciprocal-Space Formulation of Mixed Quantum–Classical Dynamics. J. Chem. Phys. 2021, 154 (22), 224101. https://doi.org/10.1063/5.0053177.

  6. Fenna, R. E.; Matthews, B. W. Chlorophyll Arrangement in a Bacteriochlorophyll Protein from Chlorobium Limicola. Nature 1975, 258 (5536), 573–577. https://doi.org/10.1038/258573a0.

  7. Mulvihill, E.; Lenn, K. M.; Gao, X.; Schubert, A.; Dunietz, B. D.; Geva, E. Simulating Energy Transfer Dynamics in the Fenna–Matthews–Olson Complex via the Modified Generalized Quantum Master Equation. J. Chem. Phys. 2021, 154 (20), 204109. https://doi.org/10.1063/5.0051101.

  8. Tully, J. C. Molecular Dynamics with Electronic Transitions. J. Chem. Phys. 1990, 93 (2), 1061–1071. https://doi.org/10.1063/1.459170.

  9. Runeson, J. E.; Manolopoulos, D. E. A Multi-State Mapping Approach to Surface Hopping. J. Chem. Phys. 2023, 159 (9), 094115. https://doi.org/10.1063/5.0158147

Metadata

Release files for qclab 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qclab 1.3.0
File Size Uploaded Provenance
qclab-1.3.0.tar.gz 90.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for qclab 1.3.0
File Interpreter ABI Platform
qclab-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 194.0 kB

Release files / qclab-1.3.0.tar.gz

Download URL qclab-1.3.0.tar.gz
Size 90.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4a1c5eb443c21a6e697c3b9e93770c89cd3125fea492af6ba9a2f59131c741a1
BLAKE2b-256 checksum
How to use checksums
87c72992cdde7b3ad49fe73360c98569087428542f7dbbde8d0749e82471daf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / qclab-1.3.0-py3-none-any.whl

Download URL qclab-1.3.0-py3-none-any.whl
Size 103.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3f9ec8549114cfad9085fac7809101dd936e4970d02a546352adcd0b058aa596
BLAKE2b-256 checksum
How to use checksums
092abbd3a2b64bfd645a16e16c1515f4365c47aebd9c8176ed495f5e7dd796da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for qclab 1.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for qclab-1.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page