PauliStrings.jl - Quantum many-body simulations with Pauli strings

Hi all !
I’m happy to announce PauliStrings.jl a quantum many body simulation package based on the Pauli strings representation.
Docs : https://paulistrings.org/
Paper : [2410.09654] Quantum many-body simulations with PauliStrings.jl
It’s particularity adapted for time evolving noisy spin systems, running Lanczos algorithm, and simulating systems on arbitrary geometries.
The main idea is to store operators as a sum of Pauli strings and apply some truncation of the number of strings or string length to make simulations tractable.
You can construct operators in a similar manner to ITensors MPO’s.
For example, the following code constructs a XX hamiltonian and computes the first 20 lanczos coefficients:

using PauliStrings

function XX(N)
    H = Operator(N)
    for j in 1:(N - 1)
        H += "X",j,"X",j+1
        H += "Z",j,"Z",j+1
    end
    return H
end

function X(N)
    H = Operator(N)
    for j in 1:N
        H += "X",j
    end
    return H
end

N = 50 # system size (spins)
H = XX(N) # hamiltonian
O = X(N) # operator

# 20 lanczos coeficients, keep 2^20 strings at each step
b = lanczos(H, O, 20, 2^20)
6 Likes