ITensorTDMPO.jl

An ITensorMPS.jl extension for time evolution under time-dependent Hamiltonians, in particular adiabatic ramps.

Overview

The Hamiltonian is always described the same way — as a set of driving channels H(t) = Σₐ fₐ(t) H⁽ᵃ⁾, each a time-independent MPO paired with a scalar driving function (or a plain number, for a constant coefficient) — and a single entry point, time_evolve, selects the integrator:

using ITensorMPS, ITensorTDMPO

ramp = Ramp(SmoothstepRamp(), 0.0, 10.0, 0.0, 2.0)

ψ = time_evolve([(1.0, Hzz), (ramp, Hx)], ψ0, 0.0, 10.0;
                nsteps = 100, cutoff = 1e-10, maxdim = 128)

# Same Hamiltonian, different integrator — nothing else changes.
ψ = time_evolve([(1.0, Hzz), (ramp, Hx)], ψ0, 0.0, 10.0;
                alg = "magnus", nsteps = 100)

Four algorithms are available — see The time_evolve interface for the full keyword reference and a guide to which one to use:

algTreatment of H(t) within a stepOrderUnitary
"piecewise_constant"frozen at one evaluation point2yes
"dyson"expanded to order N in the Dyson seriesNapproximately
"magnus"Ω₁+Ω₂(+Ω₃), applies exp(Ω)~4yes
"cfet" (default)product of exponentials, no commutators4yes

The Dyson and Magnus constructions implement (part of) the algorithms of Vanthilt, Van Damme, Haegeman, McCulloch & Vanderstraeten, Matrix Product Operator Encodings of the Magnus Expansion and Dyson Series — see Scope and limitations for what is and is not implemented relative to the paper.

Installation

Registered in the Julia General registry. From the Julia REPL:

using Pkg
Pkg.add("ITensorTDMPO")

Citation

If you use the Dyson or Magnus constructions, please cite the paper this package implements:

@article{Vanthilt2025,
  title   = {Matrix Product Operator Encodings of the Magnus Expansion and Dyson Series},
  author  = {Vanthilt, Victor and Van Damme, Maarten and Haegeman, Jutho and McCulloch, Ian P. and Vanderstraeten, Laurens},
  journal = {arXiv preprint arXiv:2605.21597},
  year    = {2025},
}

The commutator-free propagator (alg = "cfet") implements the scheme of:

@article{AlvermannFehske2011,
  title   = {High-order commutator-free exponential time-propagation of driven quantum systems},
  author  = {Alvermann, Andreas and Fehske, Holger},
  journal = {Journal of Computational Physics},
  volume  = {230},
  pages   = {5930--5956},
  year    = {2011},
  doi     = {10.1016/j.jcp.2011.04.006},
}