Hierarchy Equations of Motion

This module provides the necessary tools for doing HEOM simulations. While the equations of motion have been reported in many articles, the current implementation is based on a relatively recent paper, HEOM1. It should be noted that this is a particularly naive implementation of the algorithm that only works for the simplest of case of a Drude-Lorentz spectral density. Scaling of the auxiliary density operators is employed. The integration of the equations of motion is done using the DifferentialEquations.jl package.

API

QuantumDynamics.HEOM.setup_simulationFunction
setup_simulation(num_baths::Int, num_modes::Int, Lmax::Int)

Sets up the simulation parameters for a problem with num_baths baths, num_modes extra matsubara modes, and a hierarchy Lmax levels deep.

Returns a tuple of:

  • nveclist: List of the possible subscripts, n, in HEOM. Each element in the list is a represented as a matrix. Every row corresponds to a bath.
  • npluslocs[b,m,l]: Given the lth nvector, returns the location of the nvector if the bth bath's mth Matsubara mode is increased by one.
  • nminuslocs[b,m,l]: Given the lth nvector, returns the location of the nvector if the bth bath's mth Matsubara mode is decreased by one.
source
QuantumDynamics.HEOM.propagateFunction
propagate(; Hamiltonian::AbstractMatrix{ComplexF64}, ρ0::AbstractMatrix{ComplexF64}, β::Real, Jw::AbstractVector{SpectralDensities.DrudeLorentz}, sys_ops::Vector{Matrix{ComplexF64}}, num_modes::Int, Lmax::Int, dt::Real, ntimes::Int, threshold::Float64=0.0, external_fields::Union{Nothing,Vector{Utilities.ExternalField}}=nothing, extraargs::Utilities.DiffEqArgs=Utilities.DiffEqArgs())

Uses HEOM to propagate the initial reduced density matrix, ρ0, under the given Hamiltonian, and set of spectral densities, Jw, interacting with the system through sys_ops.

  • ρ0: initial reduced density matrix

  • Hamiltonian: system Hamiltonian

  • external_fields: either nothing or a vector of external time-dependent fields

  • Jw: array of spectral densities

  • sys_ops: system operators through which the corresponding baths interact

  • num_modes: number of Matsubara modes to be considered

  • Lmax: cutoff for maximum number of levels

  • dt: time-step for recording the density matrices

  • ntimes: number of time steps of simulation

  • threshold: filtration threshold

  • extraargs: extra arguments for the differential equation solver

source