Transfer Tensor Method (TTM)

This module provides the interface for generating propagators beyond an entanglement length using TTM.

API

QuantumDynamics.TTM.propagateFunction
propagate(; fbU::Array{ComplexF64, 3}, Jw::Vector{T}, β::Real, ρ0::Matrix{ComplexF64}, dt::Real, ntimes::Int, rmax::Int, path_integral_routine, extraargs::Utilities.ExtraArgs, svec=[1.0 -1.0], QuAPI::Bool=false, verbose::Bool=false, reference_prop=false) where {T<:SpectralDensities.SpectralDensity}

Uses TTM to propagate the dynamics starting from ρ0. TTM uses propagators for different time-spans and these are calculated using the path_integral_routine, which returns these propagators after solving the Feynman-Vernon influence functional. If QuAPI is set to false, the default TTM method is used. Setting QuAPI to true lifts the time-translational invariance requirements of the method. Currently it is possible to use QuAPI, Blip, TEMPO, and PCTNPI to generate the propagators when QuAPI=false. The functions are called build_augmented_propagators. The additional propagators required when QuAPI=true can be simulated using the build_augmented_propagators_QuAPI_TTM of QuAPI and Blip modules.

Unlike the base methods, TTM.propagate cannot assume the default type of extraargs required for the path_integral_routine. Therefore, unlike QuAPI.propagate or QuAPI.build_augmented_propagator, TTM.propagate needs to be supplied an extraargs parameter compatible with the path_integral_routine passed in. Passing in incompatible extraargs, eg. Blip.BlipArgs with QuAPI.build_augmented_propagator, would result in errors.

source
QuantumDynamics.TTM.get_propagatorsFunction
get_propagators(; fbU::Array{<:Complex,3}, Jw::Vector{T}, β, dt, ntimes, rmax, kmax::Union{Int, Nothing}=nothing, path_integral_routine, extraargs::Utilities.ExtraArgs, svec=[1.0 -1.0], verbose::Bool=false, reference_prop=false, output::Union{Nothing,HDF5.Group}=nothing) where {T<:SpectralDensities.SpectralDensity}

Calculates a timeseries of forward-backward propagators for an open quantum system using base TTM. It calls the path_integral_routine with the bare system's forward-backward propagator and the spectral density to obtain the propagators till rmax time-points. Then it uses TTM to generate the other propagators.

source
QuantumDynamics.TTM.get_propagators_QuAPIFunction
get_propagators_QuAPI(; fbU::Array{ComplexF64,3}, Jw::Vector{T}, β, dt, ntimes, rmax, path_integral_routine, extraargs::Utilities.ExtraArgs, svec=[1.0 -1.0], verbose::Bool=false, reference_prop=false) where {T<:SpectralDensities.SpectralDensity}

Calculates a timeseries of forward-backward propagators for an open quantum system using a generalized TTM fit for QuAPI. It calls the path_integral_routine with the bare system's forward-backward propagator and the spectral density to obtain the propagators till rmax time-points. Then it uses TTM to generate the other propagators.

source
QuantumDynamics.TTM.get_TsFunction
get_Ts(U0e::Array{<:Complex,3})

Returns the sequence of transfer tensors computed from the dynamical maps U0e.

Relevant references:

  • Cerrillo, J.; Cao, J. Non-Markovian Dynamical Maps: Numerical Processing of Open Quantum Trajectories. Phys. Rev. Lett. 2014, 112 (11), 110401. https://doi.org/10.1103/PhysRevLett.112.110401.
source
QuantumDynamics.TTM.get_memory_kernelFunction
get_memory_kernel(T0e::Array{<:Complex,3}, fbU::AbstractMatrix{<:Complex}, dt)

Returns the memory kernels computed from the transfer tensors T0e, and the short-time dynamical map fbU.

Relevant references:

  • Cerrillo, J.; Cao, J. Non-Markovian Dynamical Maps: Numerical Processing of Open Quantum Trajectories. Phys. Rev. Lett. 2014, 112 (11), 110401. https://doi.org/10.1103/PhysRevLett.112.110401.
source