Density matrix and evolution operators

KeldyshED.partition_functionFunction
partition_function(ed::EDCore, β::Real) -> Real

Compute the partition function $Z = \mathrm{Tr}[e^{-\beta\hat H}]$ at an inverse temperature $\beta$.

source
KeldyshED.density_matrixFunction
density_matrix(ed::EDCore, β::Real) -> Vector

Compute the equilibrium density matrix $\hat\rho = e^{-\beta\hat H} / Z$ at an inverse temperature $\beta$ represented in the eigenbasis of the Hamiltonian $\hat H$. The density matrix is returned as a vector of diagonal blocks corresponding to invariant subspaces of $\hat H$.

source
KeldyshED.evolution_operatorFunction
evolution_operator(
    ed::EDCore,
    grid::Keldysh.AbstractTimeGrid
) -> Vector{Keldysh.GenericTimeGF{ComplexF64, false}}

Compute the evolution operator

\[ \hat S(t, t') = \exp\left(-i \int_{t'}^{t} \hat H d\bar t\right)\]

on a given contour time grid and represented in the eigenbasis of the Hamiltonian $\hat H$. The operator is returned as a vector of diagonal blocks (matrix-valued Green's function containers) corresponding to invariant subspaces of $\hat H$.

source
KeldyshED.tofockbasisMethod
tofockbasis(
    S::Array{GF<:Keldysh.AbstractTimeGF, 1},
    ed::EDCore
) -> Vector{GF} where GF<:Keldysh.AbstractTimeGF

Transform a block-diagonal evolution operator S written in the eigenbasis of the system into the Fock state basis.

source
KeldyshED.toeigenbasisMethod
toeigenbasis(
    S::Array{GF<:Keldysh.AbstractTimeGF, 1},
    ed::EDCore
) -> Vector{GF} where GF<:Keldysh.AbstractTimeGF

Transform a block-diagonal evolution operator S written in the Fock state basis into the eigenbasis of the system.

source
KeldyshED.partial_traceFunction
partial_trace(
    M::Array{Array{T, 2}, 1},
    ed::EDCore,
    target_soi::KeldyshED.Hilbert.SetOfIndices
) -> Union{Array{Float64, 3}, Matrix}

Compute a partial trace of a block-diagonal matrix M.

The matrix is expected to be written in the Fock state basis. The resulting reduced matrix acts in a Hilbert space spanned by all fermionic Fock states generated by the set of indices target_soi.

source
partial_trace(
    S::Array{GF<:Keldysh.AbstractTimeGF, 1},
    ed::EDCore,
    target_soi::KeldyshED.Hilbert.SetOfIndices
) -> Any

Compute a partial trace of a block-diagonal evolution operator S written in the Fock state basis.

The resulting reduced evolution operator acts in a Hilbert space spanned by all fermionic Fock states generated by the set of indices target_soi.

source
KeldyshED.reduced_density_matrixFunction
reduced_density_matrix(
    ed::EDCore,
    target_soi::KeldyshED.Hilbert.SetOfIndices,
    β::Real
) -> Any

Compute a reduced equilibrium density matrix

\[\hat\rho_{target} = \mathrm{Tr}_{env}[e^{-\beta\hat H}] / Z\]

at an inverse temperature $\beta$.

The Hamiltonian $\hat H$ acts in a direct product of Hilbert spaces $H_{target} \otimes H_{env}$, while the resulting reduced matrix acts in $H_{target}$ spanned by all fermionic Fock states generated by the set of indices target_soi.

source
KeldyshED.reduced_evolution_operatorFunction
reduced_evolution_operator(
    ed::EDCore,
    target_soi::KeldyshED.Hilbert.SetOfIndices,
    grid::Keldysh.AbstractTimeGrid
) -> Keldysh.GenericTimeGF{ComplexF64}

Compute a reduced evolution operator

\[\hat S_{target}(t, t') = \mathrm{Tr}_{env}\left[\exp\left(-i \int_{t'}^{t} \hat H d\bar t\right)\right]\]

on a given contour time grid.

The Hamiltonian $\hat H$ acts in a direct product of Hilbert spaces $H_{target} \otimes H_{env}$, while the resulting reduced evolution operator acts in $H_{target}$ spanned by all fermionic Fock states generated by the set of indices target_soi.

source