jcmgray/quimb

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

What it solves

quimb is designed for quantum information many-body calculations. It simplifies the process of performing complex quantum simulations, specifically by providing tools for tensor networks and exact matrix-based quantum calculations, which are often computationally expensive and difficult to manage manually.

How it works

The library is split into two primary functional areas:

  1. Tensor Networks (quimb.tensor): This module allows users to create and manipulate tensor networks with arbitrary geometry (including hypergraphs). It automates the contraction, optimization, and visualization of these networks and supports multiple backend array libraries like JAX and PyTorch via autoray.
  2. Exact Calculations (Core quimb): This module handles reference calculations where states and operators are represented as NumPy or SciPy sparse matrices. It provides tools for finding ground states, excited states, and performing time evolutions, often accelerated by Numba or SLEPc.

Who it’s for

It is intended for researchers and developers working in quantum information science and many-body physics who need to simulate quantum systems using either tensor network algorithms (like DMRG, TEBD, MERA, or PEPS) or exact diagonalization methods.

Highlights

  • Flexible Geometry: Supports tensor networks beyond standard 1D and 2D lattices.
  • Backend Agnostic: Integrates with JAX and PyTorch for hardware acceleration.
  • Algorithm Support: Implements specific quantum circuit algorithms and tensor network methods such as DMRG and TEBD.
  • Performance Tools: Utilizes Numba for acceleration and SLEPc for advanced matrix operations.

Related

  • Project
  • Project
  • Project
  • Project
  • Project