ITensorMPOConstruction

Stable Dev Build Status Coverage Code Style: Blue DOI

A fast algorithm for constructing a Matrix Product Operator (MPO) from a sum of local operators. This is a replacement for ITensorMPS.MPO(os::OpSum, sites::Vector{<:Index}). If julia is started with multiple threads, they are used to transparently speed up the construction.

The three goals of this library are

  1. Produce exact MPOs (up to floating point error) of the smallest possible bond dimension.
  2. Maximize the block sparsity of the resulting MPOs.
  3. Accomplish these goals as fast as possible.

ITensorMPOConstruction is not designed to construct approximate compressed MPOs. If this is your workflow, construct the exact MPO then call ITensorMPS.truncate!.

Installation

The package is currently not registered. Please install with the commands:

julia> using Pkg; Pkg.add(url="https://github.com/ITensor/ITensorMPOConstruction.jl.git")

Citing

If you use this library in your research, please cite the following article https://doi.org/10.1103/nzrt-l2j1

Questions or Issues

In addition to GitHub issues, you can ask question on the ITensors discourse.