Source-linked AI summary

QuSpin: a Python Package for Dynamics and Exact Diagonalisation of Quantum Many Body Systems. Part II: bosons, fermions and higher spins

Phillip Weinberg, Marin Bukov

arXiv:1804.06782v3physics.comp-phcond-mat.quant-gascond-mat.str-el

TL;DR

Quantum many-body simulations require accessible tools, while exact diagonalization remains valuable for spectra and selected nonequilibrium problems. This paper presents a major QuSpin update with broader particle, symmetry, dimensionality, and evolution capabilities, demonstrated through seven examples. The package supports diverse bosonic, fermionic, spin, nonlinear, driven, and mixed-species simulations, while remaining an evolving project with stated computational scope boundaries.

  • Problem

    Numerical studies of quantum many-body systems are often difficult to implement, while exact diagonalization remains important for spectra and certain nonequilibrium dynamics.

  • Method

    The paper presents QuSpin 3.0, an open-source Python package adding particle-type support, user-defined symmetries, higher-dimensional bases, symmetry-sector evolution, parameterized Hamiltonians, and nonlinear evolution.

  • Results

    Seven examples demonstrate QuSpin across transverse-field Ising, SSH, Fermi-Hubbard, Bose-Hubbard, GPE, two-dimensional Ising, and Bose-Fermi mixture systems.

  • Takeaways & Limitations

    QuSpin provides accessible simulation capabilities for educational, theoretical, and experimental studies of a broad class of dynamical quantum systems.

  • Takeaways & Limitations

    The package does not directly include GPU libraries, and the project remains incomplete with further functionality planned.

Abstract

from arXiv · show

We present a major update to QuSpin, SciPostPhys.2.1.003 -- an open-source Python package for exact diagonalization and quantum dynamics of arbitrary boson, fermion and spin many-body systems, supporting the use of various (user-defined) symmetries in one and higher dimension and (imaginary) time evolution following a user-specified driving protocol. We explain how to use the new features of QuSpin using seven detailed examples of various complexity: (i) the transverse-field Ising chain and the Jordan-Wigner transformation, (ii) free particle systems: the Su-Schrieffer-Heeger (SSH) model, (iii) the many-body localized 1D Fermi-Hubbard model, (iv) the Bose-Hubbard model in a ladder geometry, (v) nonlinear (imaginary) time evolution and the Gross-Pitaevskii equation on a 1D lattice, (vi) integrability breaking and thermalizing dynamics in the translationally-invariant 2D transverse-field Ising model, and (vii) out-of-equilibrium Bose-Fermi mixtures. This easily accessible and user-friendly package can serve various purposes, including educational and cutting-edge experimental and theoretical research. The complete package documentation is available under http://weinbe58.github.io/QuSpin/index.html.

1 What Problems can I Study with QuSpin?

QuSpin addresses the need for accessible numerical simulation of quantum many-body systems, especially nonequilibrium dynamics where exact diagonalization remains essential. It provides a toolbox that reduces implementation effort for researchers and experimentalists.

  • QuSpin is an open-source Python library for exact diagonalization and dynamics of arbitrary quantum many-body systems.
  • Exact diagonalization remains essential for some nonequilibrium problems because high-energy states can contribute to the dynamics.
  • Exact diagonalization is also used to compute spectra of frustrated Hamiltonians and benchmark newer numerical techniques.
  • QuSpin offers quick access to simulations, helping users study dynamical setups without developing reliable numerical code from scratch.

2 How do I Use the New Features of QuSpin?

QuSpin 3.0 expands support for particle statistics, user-defined symmetries, symmetry-sector evolution, parameterized Hamiltonians, nonlinear dynamics, and higher-dimensional systems. Seven examples demonstrate these features across representative quantum many-body models, including exact agreement in the Jordan-Wigner spectrum comparison.

  • QuSpin 3.0 adds fermion, boson, and higher-spin Hamiltonians with routines for entanglement entropy, reduced density matrices, and entanglement spectra.
  • General basis constructors support user-defined symmetries and higher-dimensional lattice structures.
  • Block tools automatically split evolution across symmetry sectors, while quantum_LinearOperator applies operators on the fly to save memory at extra computational cost.
  • The customizable evolve routine handles user-specified linear and nonlinear equations, and quantum_operator defines parameter-dependent Hamiltonians.
  • The examples cover model construction, boundary conditions, conservation laws, symmetry checks, observables, spectra, SSH dynamics, MBL, GPE evolution, and thermalizing two-dimensional dynamics.
  • 2.1 The Spectrum of the Transverse Field Ising Model and the Jordan-Wigner Transformation: The spin and fermion transverse-field Ising spectra match exactly when the Jordan-Wigner transformation uses the correct boundary conditions and symmetry sectors.
  • 2.2 Free Particle Systems: the Fermionic Su-Schrieffer-Heeger (SSH) Chain: The SSH spectrum is gapped with two bands, and its non-equal-time density autocorrelation can be evolved and evaluated using QuSpin.
  • The examples additionally demonstrate disorder-driven Fermi-Hubbard localization, nonlinear GPE evolution and imaginary-time ground-state search, two-dimensional thermalizing dynamics, and Bose-Fermi mixtures.

3 New Horizons for QuSpin

QuSpin supports parallel computation and continues to expand its functionality for simulating dynamical quantum systems, while remaining an open project shaped by user needs and community contributions.

  • Scope and Development: QuSpin is described as capable of simulating a huge class of dynamical quantum systems, but the project is not considered complete.The authors anticipate adding functionality motivated by user needs.
  • Community Development: The project invites community contributions, including well-documented functions, classes, and patches connecting QuSpin with other open-source quantum-physics packages.Users are also encouraged to report bugs and malfunctions in the repository’s issues section.
  • Parallel Capabilities: QuSpin supports parallel computation through OpenMP-based multithreading and inherited Intel MKL support for selected numerical operations.OpenMP accelerates low-level loops and several constructors and evolution or matrix-operation routines; MKL can speed up diagonalization functions.
  • Parallel Capabilities: GPU libraries are not directly included because some lack the ordinary-differential-equation integration needed for time-dependent Schrödinger evolution and some are unavailable through Anaconda.QuSpin objects can nevertheless be converted to NumPy/SciPy objects for interaction with GPU libraries.
  • Future Development: Future functionality under consideration includes Lindblad dynamics, finite-temperature Lanczos methods, correlation functions, single-particle lattice bases, and improved efficiency.The proposed additions also include density-matrix dynamics and more efficient implementation of single-particle Hamiltonians.

A Installation Guide in a Few Steps

The paper directs users to Appendix A for detailed installation instructions.

  • Detailed installation instructions are provided in Appendix A.

B Basic Use of Command Line to Run Python

The paper provides instructions for beginners on executing Python code.

  • Instructions for executing a Python code are provided for beginners.

C Package Documentation

QuSpin represents quantum many-body operators as sparse matrices built with Cython and interfaces with NumPy and SciPy; its documentation is maintained online.

  • QuSpin represents quantum many-body operators as matrices, computes them with custom Cython code, and stores them in SciPy sparse-matrix format.Cython compiles Python-like code into efficient C/C++ shared libraries, while sparse storage supports large operator representations.
  • QuSpin uses NumPy and SciPy functionality for common exact-diagonalization calculations and interfaces with their broader scientific-computing ecosystem.The paper notes that these packages provide established tools and ongoing community support.
  • Complete, up-to-date package documentation is available online.

D Complete Example Codes

The QuSpin example scripts are available for download.

  • Python scripts for all QuSpin examples can be downloaded.
Loading 1804.06782v3…