QInchworm.spline_gf
SplineInterpolatedGF
QInchworm.spline_gf.make_interpolant — Method
make_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<:NTuple{N, AbstractUnitRange}}
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! — Method
update_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<:NTuple{N, AbstractUnitRange}}
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! — Method
update_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 — Method
interpolate(
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 — Method
interpolate(
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 — Type
struct 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 — Method
IncSplineImaginaryTimeGF(
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 — Method
IncSplineImaginaryTimeGF(
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 — Method
make_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 — Method
zero(
G_int::QInchworm.spline_gf.IncSplineImaginaryTimeGF{T<:Number, false}
) -> Union{QInchworm.spline_gf.IncSplineImaginaryTimeGF{T, true} where T<:Number, QInchworm.spline_gf.IncSplineImaginaryTimeGF{T, false} where T<:Number}
Make a zero matrix-valued IncSplineImaginaryTimeGF object similar to G_int.
Base.zero — Method
zero(
G_int::QInchworm.spline_gf.IncSplineImaginaryTimeGF{T<:Number, true}
) -> Union{QInchworm.spline_gf.IncSplineImaginaryTimeGF{T, true} where T<:Number, QInchworm.spline_gf.IncSplineImaginaryTimeGF{T, false} where T<:Number}
Make a zero scalar-valued IncSplineImaginaryTimeGF object similar to G_int.
QInchworm.utility.extend! — Method
extend!(
G_int::QInchworm.spline_gf.IncSplineImaginaryTimeGF,
val
) -> Any
Extend the underlying IncrementalSpline objects stored in G_int with a value val.
Interpolations.interpolate — Method
interpolate(
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 — Method
interpolate(
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.