Package Index
The package index is a map of tools by task. It is not a ranking and not an endorsement. Package choices should be driven by the calculation, reproducibility burden, licensing constraints, and whether the package’s abstractions reduce or hide physics errors.
For any package-dependent notebook, cite the official documentation and record the version used.
Core Scientific Python
Section titled “Core Scientific Python”Python.
Typical use: notebooks, scripts, validation cells, and lightweight automation.
Use when: the calculation benefits from a broad scientific ecosystem and readable examples.
Watch for: Python version and package versions must be recorded for reproducibility.
NumPy.
Typical use: arrays, vectorized linear algebra, grid calculations, validation cells, and small dense computations.
Use when: the notebook can be expressed with transparent arrays and direct checks.
Watch for: array shape, dtype, broadcasting, and normalization weights are common sources of hidden mistakes.
SciPy.
Typical use: sparse matrices, eigensolvers, integration, special functions, optimization, and signal processing.
Use when: the calculation needs trusted numerical algorithms beyond base arrays.
Watch for: solver tolerances and sparse matrix formats should be part of the benchmark report.
SymPy.
Typical use: symbolic algebra, exact matrix checks, commutators, series expansions, and expression verification.
Use when: symbolic manipulation clarifies a derivation or catches algebraic errors.
Watch for: symbolic results can become unreadable; keep symbolic checks focused.
Matplotlib.
Typical use: static plots for wavefunctions, spectra, convergence, and benchmark reports.
Use when: figures need local, reproducible generation.
Watch for: a figure is not validated until the plotted quantity, units, parameters, and source notebook are recorded.
Quantum Mechanics Packages
Section titled “Quantum Mechanics Packages”QuTiP.
Typical use: open quantum systems, quantum optics, Lindblad dynamics, driven systems, and finite-dimensional models.
Use when: density matrices, collapse operators, and quantum-optical workflows are central.
Watch for: basis ordering, collapse-operator conventions, solver tolerances, and package version should be recorded.
Qiskit.
Typical use: circuit-model quantum information, gates, transpilation, simulators, and IBM quantum workflows.
Use when: the notebook is specifically about circuits, gates, measurement counts, or hardware-facing examples.
Watch for: circuit endianness, measurement bit order, simulator backend, and transpiler settings can change interpretation.
Cirq.
Typical use: circuit construction and simulation, especially in workflows aligned with Google’s quantum software ecosystem.
Use when: circuit notation and simulator behavior match the intended example.
Watch for: qubit ordering and measurement-key conventions.
Tensor Networks and Many-Body Tools
Section titled “Tensor Networks and Many-Body Tools”TeNPy.
Typical use: tensor-network simulations, matrix-product states, DMRG, and time evolution in one-dimensional many-body systems.
Use when: the task genuinely needs tensor-network methods rather than exact diagonalization.
Watch for: truncation errors, bond dimensions, finite-size effects, and boundary conventions.
quimb.
Typical use: tensor networks, exact diagonalization helpers, and Python-native many-body workflows.
Use when: flexible tensor-network and linear-algebra tools are useful for exploratory many-body examples.
Watch for: the abstraction layer can hide index ordering; record tensor layouts and truncation thresholds.
ITensor.
Typical use: tensor networks and many-body simulations in Julia or C++ ecosystems.
Use when: a mature tensor-network workflow is needed and language choice is explicit.
Watch for: site-index conventions, truncation settings, and environment setup.
Quantum Chemistry
Section titled “Quantum Chemistry”PySCF.
Typical use: Hartree–Fock, density-functional theory, post-Hartree–Fock methods, and molecular integrals in Python.
Use when: electronic-structure calculations are needed as computational quantum chemistry examples.
Watch for: basis sets, units, molecular geometry, and software version must be recorded.
Psi4.
Typical use: quantum chemistry calculations with a mature standalone package and Python interface.
Use when: the task needs established electronic-structure workflows and benchmarkable molecular examples.
Watch for: input files, basis sets, convergence criteria, and citation requirements.
Package Admission Checklist
Section titled “Package Admission Checklist”Before a new package becomes part of a notebook workflow, record:
- purpose,
- language and installation route,
- license if relevant,
- official documentation link,
- version used,
- notebook or page using it,
- benchmark confirming the package-dependent result,
- fallback or minimal example if the package is optional.
Cross-Links
Section titled “Cross-Links”- Environments
- Code Style
- Computational QM References
- Quantum Information References
- Quantum Chemistry References
References
Section titled “References”- Python Software Foundation, Python Documentation.
- NumPy Developers, NumPy Documentation; C. R. Harris et al., “Array programming with NumPy,” Nature 585, 357-362 (2020), DOI: 10.1038/s41586-020-2649-2.
- SciPy Developers, SciPy Documentation; P. Virtanen et al., “SciPy 1.0,” Nature Methods 17, 261-272 (2020), DOI: 10.1038/s41592-019-0686-2.
- SymPy Development Team, SymPy Documentation.
- Matplotlib Developers, Matplotlib Documentation; J. D. Hunter, “Matplotlib: A 2D graphics environment,” Computing in Science and Engineering 9, 90-95 (2007), DOI: 10.1109/MCSE.2007.55.
- QuTiP Developers, QuTiP Documentation; J. R. Johansson, P. D. Nation, and F. Nori, “QuTiP: An open-source Python framework for the dynamics of open quantum systems,” Computer Physics Communications 183, 1760-1772 (2012), DOI: 10.1016/j.cpc.2012.02.021.
- IBM Quantum, Qiskit Documentation.
- Cirq Developers, Cirq Documentation.
- TeNPy Developers, TeNPy Documentation.
- quimb Developers, quimb Documentation.
- ITensor Developers, ITensor Documentation.
- PySCF Developers, PySCF Documentation.
- Psi4 Developers, Psi4 Documentation.