/quimb

A python library for quantum information and many-body calculations including tensor networks.

Primary LanguagePythonOtherNOASSERTION

Tests Code Coverage Code Quality Documentation Status JOSS Paper PyPI

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:


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


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


The full documentation can be found at: quimb.readthedocs.io. Contributions of any sort are very welcome - please see the contributing guide. Issues and pull requests are hosted on github. For other questions and suggestions, please use the discussions page.