QInchworm.spline_gf
SplineInterpolatedGF
QInchworm.spline_gf.make_interpolant — Methodmake_interpolant(
GF::Keldysh.ImaginaryTimeGF{T<:Number, scalar},
k,
l,
τ_max::Keldysh.TimeGridPoint
) -> Interpolations.ScaledInterpolation{_A, 1, Interpolations.BSplineInterpolation{T, N, TCoefs, IT, Axs}, Interpolations.BSpline{Interpolations.Cubic{Interpolations.Line{Interpolations.OnGrid}}}, <:Tuple{LinRange{T, Int64} where T}} where {_A, T, N, TCoefs<:AbstractArray, IT<:Union{Interpolations.NoInterp, Tuple{Vararg{Union{Interpolations.NoInterp, Interpolations.BSpline}}}, Interpolations.BSpline}, Axs<:Tuple{Vararg{AbstractUnitRange, N}}}
Make a cubic B-spline interpolant from GF's data corresponding to its matrix indices k, l. Data points from the start of the grid up to τ_max are used.
QInchworm.spline_gf.update_interpolant! — Methodupdate_interpolant!(
G_int::QInchworm.spline_gf.SplineInterpolatedGF{Keldysh.ImaginaryTimeGF{T<:Number, scalar}, T<:Number, scalar},
k,
l;
τ_max
) -> Interpolations.ScaledInterpolation{_A, 1, Interpolations.BSplineInterpolation{T, N, TCoefs, IT, Axs}, Interpolations.BSpline{Interpolations.Cubic{Interpolations.Line{Interpolations.OnGrid}}}, <:Tuple{LinRange{T, Int64} where T}} where {_A, T, N, TCoefs<:AbstractArray, IT<:Union{Interpolations.NoInterp, Tuple{Vararg{Union{Interpolations.NoInterp, Interpolations.BSpline}}}, Interpolations.BSpline}, Axs<:Tuple{Vararg{AbstractUnitRange, N}}}
Update the interpolant stored in G_int and corresponding to its matrix indices k, l. The updated interpolant interpolates data points of G_int.GF from the start of the grid up to τ_max. By default, the entire data array is used.
QInchworm.spline_gf.update_interpolants! — Methodupdate_interpolants!(
G_int::QInchworm.spline_gf.SplineInterpolatedGF{Keldysh.ImaginaryTimeGF{T<:Number, scalar}, T<:Number, scalar};
τ_max
)
Update all interpolants stored in G_int. The updated interpolants interpolate data points of G_int.GF from the start of the grid up to τ_max. By default, the entire data array is used.
Interpolations.interpolate — Methodinterpolate(
G_int::QInchworm.spline_gf.SplineInterpolatedGF{Keldysh.ImaginaryTimeGF{T, true}, T, true},
t1::Keldysh.BranchPoint,
t2::Keldysh.BranchPoint
) -> Any
Evaluate the spline-interpolated Green's function G_int at the contour time arguments t1, t2.
Interpolations.interpolate — Methodinterpolate(
G_int::QInchworm.spline_gf.SplineInterpolatedGF{Keldysh.ImaginaryTimeGF{T, false}, T, false},
t1::Keldysh.BranchPoint,
t2::Keldysh.BranchPoint
) -> Any
Evaluate the spline-interpolated Green's function G_int at the contour time arguments t1, t2.
IncSplineImaginaryTimeGF
QInchworm.spline_gf.IncSplineImaginaryTimeGF — Typestruct IncSplineImaginaryTimeGF{T, scalar} <: Keldysh.AbstractTimeGF{T, scalar}Wrapper around an imaginary time Green's function object that supports interpolation based on the IncrementalSpline.
The wrapper supports square bracket access to the wrapped object, direct access to the grid property, eltype(), Keldysh.norbitals() and Keldysh.TimeDomain(). Evaluation at an arbitrary imaginary time point (via operator ()) is carried out by a stored set of pre-computed IncrementalSpline interpolants.
Fields
GF::Keldysh.ImaginaryTimeGF: Wrapped Green's functioninterpolants::Any: Incremental spline interpolants, one object per matrix element of GF
QInchworm.spline_gf.IncSplineImaginaryTimeGF — MethodIncSplineImaginaryTimeGF(
GF::Keldysh.ImaginaryTimeGF{T<:Number, true},
derivative_at_0::Number
) -> QInchworm.spline_gf.IncSplineImaginaryTimeGF{T, true} where T<:Number
Make a IncSplineImaginaryTimeGF wrapper around a scalar-valued GF and initialize incremental interpolants of its data. derivative_at_0 is imaginary time derivative of GF at $\tau=0$ needed to compute the first segment of the interpolants.
QInchworm.spline_gf.IncSplineImaginaryTimeGF — MethodIncSplineImaginaryTimeGF(
GF::Keldysh.ImaginaryTimeGF{T<:Number, false},
derivative_at_0::Array{T<:Number, 2}
) -> QInchworm.spline_gf.IncSplineImaginaryTimeGF{T, false} where T<:Number
Make a IncSplineImaginaryTimeGF wrapper around a matrix-valued GF and initialize incremental interpolants of its data. derivative_at_0 is imaginary time derivative of GF at $\tau=0$ needed to compute the first segment of the interpolants.
QInchworm.spline_gf.make_inc_interpolant — Methodmake_inc_interpolant(
GF::Keldysh.ImaginaryTimeGF{T<:Number, scalar},
k,
l,
derivative_at_0::Number
) -> QInchworm.utility.IncrementalSpline
Make an incremental spline interpolant from GF's data and corresponding to its matrix indices k, l. derivative_at_0 is imaginary time derivative of GF[k, l] at $\tau=0$ needed to compute the first segment of the interpolant.
Base.zero — Methodzero(
G_int::QInchworm.spline_gf.IncSplineImaginaryTimeGF{T<:Number, false}
) -> QInchworm.spline_gf.IncSplineImaginaryTimeGF
Make a zero matrix-valued IncSplineImaginaryTimeGF object similar to G_int.
Base.zero — Methodzero(
G_int::QInchworm.spline_gf.IncSplineImaginaryTimeGF{T<:Number, true}
) -> QInchworm.spline_gf.IncSplineImaginaryTimeGF
Make a zero scalar-valued IncSplineImaginaryTimeGF object similar to G_int.
QInchworm.utility.extend! — Methodextend!(
G_int::QInchworm.spline_gf.IncSplineImaginaryTimeGF,
val
) -> Any
Extend the underlying IncrementalSpline objects stored in G_int with a value val.
Interpolations.interpolate — Methodinterpolate(
G_int::QInchworm.spline_gf.IncSplineImaginaryTimeGF{T, true},
τ1::Keldysh.BranchPoint,
τ2::Keldysh.BranchPoint
) -> Any
Evaluate the spline-interpolated scalar-valued Green's function G_int at the imaginary time arguments τ1, τ2.
Interpolations.interpolate — Methodinterpolate(
G_int::QInchworm.spline_gf.IncSplineImaginaryTimeGF{T, false},
τ1::Keldysh.BranchPoint,
τ2::Keldysh.BranchPoint
) -> Any
Evaluate the spline-interpolated matrix-valued Green's function G_int at the imaginary time arguments τ1, τ2.