Quantum-Many-Body / QuantumLattices.jl

Julia package for the construction of quantum lattice systems.
https://quantum-many-body.github.io/QuantumLattices.jl
Other
108 stars 9 forks source link
condensed-matter-physics hamiltonian quantum-lattice-systems quantum-many-body second-quantized-operator symbolic-computation

QuantumLattices.jl

CI codecov 996.icu LICENSE LICENSE Code Style: Blue ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

Julia package for the construction of quantum lattice systems.

Welcome to QuantumLattices. Here we provide a general framework to construct the operator-formed Hamiltonian of any quantum lattice system, with the inputs as simple as its description by the natural language. This operator-formed Hamiltonian supports complete symbolic computations when combined with SymPy, and can serve as a convenient frontend of quantum many-body algorithms, such as TBA (tight-bind approximation), LSWT (linear spin wave theory), SCMF (self-consistent mean field theory), ED (exact diagonalization), CPT/VCA (cluster perturbation theory / variational cluster approach), DMRG (density matrix renormalization group), etc. Generic interfaces are defined to provide a unified access to these algorithms with automatic project management.

Installation

In Julia v1.8+, please type ] in the REPL to use the package mode, then type this command:

pkg> add QuantumLattices

Package Features

The mathematical foundations of our package is that the operators in a lattice Hamiltonian:

Based on this, the package has the following features:

Supported Systems

Four common categories of quantum lattice systems in condensed matter physics are supported:

Furthermore, other systems can be supported easily by extending the generic protocols provided in this package.

Supported Algorithms

Concrete algorithms could be considered as the "backend" of quantum lattice systems. They are developed in separate packages (still in progress):

Getting Started

Note

Due to the fast development of this package, releases with different minor version numbers are not guaranteed to be compatible with previous ones before the release of v1.0.0. Comments are welcomed in the GitHub issues.

Contact

waltergu1989@gmail.com

Python counterpart

HamiltonianPy: in fact, the authors of this Julia package worked on the python package at first and only turned to Julia later.