QInchworm.inchworm
QInchworm.inchworm.TopologiesInputData
— Typestruct TopologiesInputData
Inchworm algorithm input data specific to a given set of topologies.
Fields
order::Int64
: Expansion ordern_pts_after::Int64
: Number of points in the after-$t_w$ regiontopologies::Vector{QInchworm.diagrammatics.Topology}
: List of contributing topologiesN_samples::Int64
: Number of qMC samples per sequence (should be a power of 2)rand_params::QInchworm.randomization.RandomizationParams
: qMC randomization parameters
QInchworm.inchworm.inchworm_step
— Functioninchworm_step(
expansion::QInchworm.expansion.Expansion,
c::Keldysh.AbstractContour,
τ_i::Keldysh.TimeGridPoint,
τ_w::Keldysh.TimeGridPoint,
τ_f::Keldysh.TimeGridPoint,
top_data::Vector{QInchworm.inchworm.TopologiesInputData};
seq_type,
tmr
) -> Tuple{Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}, Dict{Int64, Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}}, Dict{Int64, Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}}}
Perform one regular step of qMC inchworm accumulation of the bold propagators.
Parameters
expansion
: Strong coupling expansion problem.c
: Time contour for integration.τ_i
: Initial time of the bold propagator to be computed.τ_w
: Inchworm splitting time $\tau_w$.τ_f
: Final time of the bold propagator to be computed.top_data
: Inchworm algorithm input data.seq_type
: Type of the (quasi-)random sequence to be used for integration.tmr
: ATimerOutput
object used for profiling.
Returns
- Accumulated value of the bold propagator.
- Order-resolved contributions to the bold propagator as a dictionary
Dict{Int, SectorBlockMatrix}
. - Estimated standard deviations of the order-resolved contributions as a dictionary
Dict{Int, SectorBlockMatrix}
.
QInchworm.inchworm.inchworm_step_bare
— Functioninchworm_step_bare(
expansion::QInchworm.expansion.Expansion,
c::Keldysh.AbstractContour,
τ_i::Keldysh.TimeGridPoint,
τ_f::Keldysh.TimeGridPoint,
top_data::Vector{QInchworm.inchworm.TopologiesInputData};
seq_type,
tmr
) -> Tuple{Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}, Dict{Int64, Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}}, Dict{Int64, Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}}}
Perform the initial step of qMC inchworm accumulation of the bold propagators. This step amounts to summing all (not only inchworm-proper) diagrams built out of the bare propagators.
Parameters
expansion
: Strong coupling expansion problem.c
: Time contour for integration.τ_i
: Initial time of the bold propagator to be computed.τ_f
: Final time of the bold propagator to be computed.top_data
: Inchworm algorithm input data.seq_type
: Type of the (quasi-)random sequence to be used for integration.tmr
: ATimerOutput
object used for profiling.
Returns
- Accumulated value of the bold propagator.
- Order-resolved contributions to the bold propagator as a dictionary
Dict{Int, SectorBlockMatrix}
. - Estimated standard deviations of the order-resolved contributions as a dictionary
Dict{Int, SectorBlockMatrix}
.
QInchworm.inchworm.diff_inchworm_step!
— Functiondiff_inchworm_step!(
expansion::QInchworm.expansion.Expansion,
c::Keldysh.ImaginaryContour,
τ_i::Keldysh.TimeGridPoint,
τ_f_prev::Keldysh.TimeGridPoint,
τ_f::Keldysh.TimeGridPoint,
Σ::Union{Vector{Keldysh.GenericTimeGF{ComplexF64, false, Keldysh.FullTimeGrid}}, Vector{Keldysh.ImaginaryTimeGF{ComplexF64, false}}, Vector{QInchworm.exact_atomic_ppgf.ExactAtomicPPGF}, Vector{QInchworm.spline_gf.IncSplineImaginaryTimeGF{ComplexF64, false}}, Vector{QInchworm.spline_gf.SplineInterpolatedGF{Keldysh.GenericTimeGF{ComplexF64, false, Keldysh.FullTimeGrid}, ComplexF64, false}}, Vector{QInchworm.spline_gf.SplineInterpolatedGF{Keldysh.ImaginaryTimeGF{ComplexF64, false}, ComplexF64, false}}},
hamiltonian::Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}},
top_data::Vector{QInchworm.inchworm.TopologiesInputData};
seq_type,
tmr
) -> Tuple{Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}, Dict{Int64, Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}}, Dict{Int64, Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}}}
Perform one step of the differential qMC inchworm accumulation of the bold propagators.
Parameters
expansion
: Strong coupling expansion problem.c
: Imaginary time contour for integration.τ_i
: Initial time of the bold propagator to be computed.τ_f_prev
: Final time of the bold propagator computed at the previous step.τ_f
: Final time of the bold propagator to be computed.Σ
: Container to store the pseudo-particle self-energy.hamiltonian
: Atomic Hamiltonian.top_data
: Inchworm algorithm input data.seq_type
: Type of the (quasi-)random sequence to be used for integration.tmr
: ATimerOutput
object used for profiling.
Returns
- Accumulated value of the bold propagator.
- Order-resolved contributions to pseudo-particle self-energy as a dictionary
Dict{Int, SectorBlockMatrix}
. - Estimated standard deviations of the order-resolved contributions as a dictionary
Dict{Int, SectorBlockMatrix}
.