Skip to content
/ quimb Public
forked from jcmgray/quimb

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

License

Notifications You must be signed in to change notification settings

liweintu/quimb

This branch is 528 commits behind jcmgray/quimb:main.

Folders and files

NameName
Last commit message
Last commit date
Mar 31, 2022
Nov 3, 2017
Aug 31, 2021
Jul 6, 2022
Sep 4, 2018
Jul 11, 2022
Jun 22, 2022
Jan 31, 2018
Jun 23, 2022
Mar 24, 2020
Jul 19, 2021
Feb 19, 2020
Jun 14, 2022
Aug 31, 2021
Feb 27, 2020
Mar 19, 2021
Jan 27, 2022
Jan 31, 2018

Repository files navigation

Azure Code Coverage Code Quality Documentation Status JOSS Paper

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 and scipy.sparse matrices as quantum objects
  • Accelerates 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 decompositions
  • Can 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 arbitrary tensor networks with tensorflow, pytorch, jax or autograd

The full documentation can be found at: http://quimb.readthedocs.io/en/latest/. 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 dicusssions page.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.7%
  • Other 0.3%