Welcome to quimb’s documentation!
Contents
Welcome to quimb’s documentation!#
quimb is an easy but fast python library for quantum information and many-body calculations, including with tensor networks. The code is hosted on github, do please submit any issues or pull requests there. It is also thoroughly unit-tested and the tests might be the best place to look for detailed documentation.
The core quimb
module:
Uses straight
numpy
andscipy.sparse
matrices as quantum objectsAccelerates and parallelizes many operations using numba.
Makes it easy to construct operators in large tensor spaces (e.g. 2D lattices)
Uses efficient methods to compute various quantities including entanglement measures
Has many built-in states and operators, including those based on fast, parallel random number generation
Can perform evolutions with several methods, computing quantities on the fly
Has an optional slepc4py interface for easy distributed (MPI) linear algebra. This can massively increase the performance when seeking, for example, mid-spectrum eigenstates
The tensor network submodule quimb.tensor
:
Uses a geometry free representation of tensor networks
Uses opt_einsum to find efficient contraction orders for hundreds or thousands of tensors
Can perform those contractions on various backends, including with a GPU
Can plot any network, color-coded, with bond size represented
Can treat any network as a scipy
LinearOperator
, allowing many decompositionsCan perform DMRG1, DMRG2 and DMRGX, in matrix product state language
Has tools to efficiently address periodic problems (transfer matrix compression and pseudo-orthogonalization)
Can perform MPS time evolutions with TEBD
Can optimize any tensor network with
tensorflow
orpytorch

User Guide#
The following guides give a basic introduction to the various parts:
Examples#
The following examples, generated from the notebooks in docs/examples
, demonstrate some more advanced features or complete usage:
- Examples
- 1. 2D Antiferromagnetic Model Example
- 2. Quenching a Random Product State
- 3. MPI Interior Eigensolve with Lazy, Projected Operators
- 4. Example - Tensor Renormalization Group (TRG)
- 5. Tensor Network Random Unitary Evolution
- 6. Periodic DMRG and Calculations
- 7. MPS Evolution with TEBD
- 8. Basic MERA Manipulations & Optimization
- 9. Optimizing a Tensor Network using Tensorflow
- 10. Tensor Network Training of Quantum Circuits
- 11. Bayesian Optimizing QAOA Circuit Energy
Citing#
quimb
is published in the Journal of Open Source Software here - if it’s ever useful in research please consider citing it!
@article{gray2018quimb,
title={quimb: a python library for quantum information and many-body calculations},
author={Gray, Johnnie},
journal={Journal of Open Source Software},
year = {2018},
volume={3}, number={29}, pages={819},
doi={10.21105/joss.00819},
}
Notes#
Notes on contributing to quimb
and release details can be found below:
Indices and tables#
The following sections contain the complete listing of functions, classes and modules in quimb
.