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.propagate
— Functionpropagate(; 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 matrixfbU
: time-series of forward-backward propagatorsJw
: array of spectral densitiessvec
: diagonal elements of system operators through which the corresponding baths interact. QuAPI currently only works for baths with diagonal coupling to the system.β
: inverse temperaturedt
: time-step for recording the density matricesntimes
: number of time steps of simulationkmax
: number of steps within memoryextraargs
: extra arguments for the TEMPO algorithm. Contains thecutoff
threshold for SVD filtration, the maximum bond dimension,maxdim
, and thealgorithm
of applying an MPO to an MPS.
QuantumDynamics.TEMPO.build_augmented_propagator
— Functionbuild_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.