Density matrix and evolution operators
KeldyshED.partition_function
— Functionpartition_function(ed::EDCore, β::Real) -> Real
Compute the partition function $Z = \mathrm{Tr}[e^{-\beta\hat H}]$ at an inverse temperature $\beta$.
KeldyshED.density_matrix
— Functiondensity_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$.
KeldyshED.evolution_operator
— Functionevolution_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$.
KeldyshED.tofockbasis
— Methodtofockbasis(
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.
KeldyshED.toeigenbasis
— Methodtoeigenbasis(
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.
KeldyshED.partial_trace
— Functionpartial_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
.
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
.
KeldyshED.reduced_density_matrix
— Functionreduced_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
.
KeldyshED.reduced_evolution_operator
— Functionreduced_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
.