Skip to content
/ quimb Public

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

License

Notifications You must be signed in to change notification settings

jcmgray/quimb

Repository files navigation

quimb logo

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:


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

tensor pic


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

matrix pic


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.