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.