Quantum-Classical Path Integral
QCPI provides a rigorous way of coupling a classical-like solvent to a quantum system. The method has been outlined in QCPI1, QCPI2, reference propagators.
API
QuantumDynamics.QCPI.propagate
— Functionpropagate(; Hamiltonian::Matrix{ComplexF64}, Jw::SpectralDensities.SpectralDensity, solvent::Solvents.Solvent, ρ0::Matrix{ComplexF64}, classical_dt::Real, dt::Real, ntimes::Int, kmax::Int, reference_choice::String, path_integral_routine, extraargs::Utilities.ExtraArgs, svec=[1.0 -1.0], verbose::Bool=false)
Use QCPI to propagate an initial density matrix, ρ0, under a given Hamiltonian with a solvent that is described by solvent
and a corresponding spectral density Jw
.
The solvent shown here is encoded in the Solvents
submodule:
QuantumDynamics.Solvents
— ModuleGeneral description of different types of solvents.
The Solvents
submodule defines a general Solvent
type and an associated PhaseSpace
type.
QuantumDynamics.Solvents.Solvent
— TypeAbstract type for every solvent. Every solvent needs to implement Base.iterate
, which returns the next sample of the phase-space, and a propagate_trajectory
method which propagates a given phasespace point using classical mechanics.
QuantumDynamics.Solvents.PhaseSpace
— TypeAbstract type for all phase spaces. Each Solvent
has an associated phase-space.