Time-Evolving Matrix Product Operators

Time-Evolving Matrix Product Operators (TEMPO) uses matrix product states and operators to reduces the computational complexity and storage requirement for doing a path integral simulation. This allows for simulation of significantly larger systems with longer lengths of non-Markovian memory. The fundamental ideas are outlined in TEMPO. The implementation closely follows the details presented in TNPI.

API

QuantumDynamics.TEMPO.propagateFunction
propagate(; fbU::Matrix{ComplexF64}, Jw::Vector{T}, β::Real, ρ0, dt::Real, ntimes::Int, kmax::Int, extraargs::TEMPOArgs=TEMPOArgs(), svec=[1.0 -1.0], reference_prop=false, verbose::Bool=false) where {T<:SpectralDensities.SpectralDensity}

Given a time-series of system forward-backward propagators, fbU, the spectral densities describing the solvent, Jw, and an inverse temperature, this uses TEMPO to propagate the input initial reduced density matrix, ρ0, with a time-step of dt for ntimes time steps. A non-Markovian memory of kmax steps is used in this simulation. The i^th bath, described by Jw[i], interacts with the system through the diagonal operator with the values of svec[j,:].

Relevant references:

  • Strathearn, A.; Kirton, P.; Kilda, D.; Keeling, J.; Lovett, B. W. Efficient Non-Markovian Quantum Dynamics Using Time-Evolving Matrix Product Operators. Nature Communications 2018, 9, 3322. https://doi.org/10.1038/s41467-018-05617-3.
  • Bose, A.; Walters, P. L. A Tensor Network Representation of Path Integrals: Implementation and Analysis. arXiv pre-print server arXiv:2106.12523 2021.

Arguments:

  • ρ0: initial reduced density matrix
  • fbU: time-series of forward-backward propagators
  • Jw: array of spectral densities
  • svec: diagonal elements of system operators through which the corresponding baths interact. QuAPI currently only works for baths with diagonal coupling to the system.
  • β: inverse temperature
  • dt: time-step for recording the density matrices
  • ntimes: number of time steps of simulation
  • kmax: number of steps within memory
  • extraargs: extra arguments for the TEMPO algorithm. Contains the cutoff threshold for SVD filtration, the maximum bond dimension, maxdim, and the algorithm of applying an MPO to an MPS.
source
QuantumDynamics.TEMPO.build_augmented_propagatorFunction
build_augmented_propagator(; fbU::Matrix{ComplexF64}, Jw::Vector{T}, β::Real, dt::Real, ntimes::Int, kmax::Union{Int, Nothing}=nothing, extraargs::TEMPOArgs=TEMPOArgs(), svec=[1.0 -1.0], reference_prop=false, verbose::Bool=false) where {T<:SpectralDensities.SpectralDensity}

Builds the propagators, augmented with the influence of the harmonic baths defined by the spectral densities Jw, upto ntimes time-steps using the TEMPO scheme. If kmax is specified, the full memory simulation is only done for kmax steps, else it is done for all ntimes steps. The j^th bath, described by Jw[j], interacts with the system through the diagonal operator with the values of svec[j,:].

Relevant references:

  • Strathearn, A.; Kirton, P.; Kilda, D.; Keeling, J.; Lovett, B. W. Efficient Non-Markovian Quantum Dynamics Using Time-Evolving Matrix Product Operators. Nature Communications 2018, 9, 3322. https://doi.org/10.1038/s41467-018-05617-3.
  • Bose, A.; Walters, P. L. A Tensor Network Representation of Path Integrals: Implementation and Analysis. arXiv pre-print server arXiv:2106.12523 2021.
source