I have just released version 2.0 of TensorMixedStates.jl (TMS), a library built on ITensors and ITensorMPS to simulate closed and open quantum systems with matrix product states. It may help with questions that come up here regularly: TDVP on a density matrix, Lindblad equations, steady states, thermal states, logarithmic negativity.
A density matrix is itself an MPS, and a Lindbladian is written as a Julia expression, which TMS turns into an MPO:
using TensorMixedStates, .Qubits
n = 6
H = -sum(Z(i)Z(i + 1) for i in 1:n-1) - sum(X(i) for i in 1:n)
L = -im * H + sum(Dissipator(sqrt(0.2) * Sm)(i) for i in 1:n) # Lindbladian
ρ = State{Mixed}(System(n, Qubit()), "Up") # density matrix as an MPS
ρ = evolve(L, 2.0, ρ; nsteps = 20) # TDVP
measure(ρ, [Z, Purity])
A pure state holds its MPS in state.state, and the algorithms of TMS call those of ITensorMPS. The page Coming from QuTiP or ITensors puts the calls of ITensorMPS and those of TMS side by side.
The full list of features, the documentation and the article are in the announcement on the Julia Discourse: [ANN] TensorMixedStates.jl 2.0: closed and open quantum systems with matrix product states - Package Announcements - Julia Programming Language
Questions and feedback are very welcome, here or in the GitHub issues.
P.S. The entry of TMS on the Codes page of itensor.org predates version 2.0: could its description become “A Julia library to simulate closed and open quantum systems, pure and mixed states, using matrix product states.”, and Grégoire Misguich, its co-author, be added as a developer?