QInchworm.inchworm

QInchworm.inchworm.TopologiesInputDataType
struct TopologiesInputData

Inchworm algorithm input data specific to a given set of topologies.

Fields

  • order::Int64: Expansion order

  • n_pts_after::Int64: Number of points in the after-$t_w$ region

  • topologies::Vector{QInchworm.diagrammatics.Topology}: List of contributing topologies

  • N_samples::Int64: Number of qMC samples per sequence (should be a power of 2)

  • rand_params::QInchworm.randomization.RandomizationParams: qMC randomization parameters

source
QInchworm.inchworm.inchworm_stepFunction
inchworm_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: A TimerOutput 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}.
source
QInchworm.inchworm.inchworm_step_bareFunction
inchworm_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: A TimerOutput 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}.
source
QInchworm.inchworm.diff_inchworm_step!Function
diff_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: A TimerOutput 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}.
source