quimb

Welcome to quimb’s documentation!

Tests Code Coverage Code Quality Documentation Status JOSS Paper PyPI Anaconda-Server Badge

quimb is an easy but fast python library for ‘quantum information many-body’ calculations, focusing primarily on tensor networks. The code is hosted on github, and docs are hosted on readthedocs. Functionality is split in two:

Tensor module

The quimb.tensor module contains tools for working with tensors and tensor networks. It has a particular focus on automatically handling arbitrary geometry, e.g. beyond 1D and 2D lattices. With this you can:

  • construct and manipulate arbitrary (hyper) graphs of tensor networks

  • automatically contract, optimize and draw networks

  • use various backend array libraries such as jax and torch via autoray

  • run specific MPS, PEPS, MERA and quantum circuit algorithms, such as DMRG & TEBD

Matrix module

The core quimb module contains tools for reference ‘exact’ quantum calculations, where the states and operator are represented as either numpy.ndarray or scipy.sparse matrices. With this you can:

  • construct operators in complicated tensor spaces

  • find groundstates, excited states and do time evolutions, including with slepc

  • compute various quantities including entanglement measures

  • take advantage of numba accelerations

  • stochastically estimate \(\mathrm{Tr}f(X)\) quantities

User Guide

The following guides give a basic introduction to the various parts:

Guides

Examples

The following examples, generated from the notebooks in docs/examples, demonstrate some more advanced features or complete usage:

Citing

quimb is published in the Journal of Open Source Software here - if it’s ever useful in research please consider supporting development by 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

Development notes, including on contributing to quimb and release details can be found below: