pub trait KernelProperties {
type SVEHintsType<T>: SVEHints<T> + Clone
where T: Copy + Debug + Send + Sync + CustomNumeric + 'static;
// Required methods
fn ypower(&self) -> i32;
fn conv_radius(&self) -> f64;
fn xmax(&self) -> f64;
fn ymax(&self) -> f64;
fn regularizer<S: StatisticsType + 'static>(
&self,
beta: f64,
omega: f64,
) -> f64;
fn sve_hints<T>(&self, epsilon: f64) -> Self::SVEHintsType<T>
where T: Copy + Debug + Send + Sync + CustomNumeric + 'static;
}Expand description
Trait for kernel type properties (static characteristics)
Required Associated Types§
Sourcetype SVEHintsType<T>: SVEHints<T> + Clone
where
T: Copy + Debug + Send + Sync + CustomNumeric + 'static
type SVEHintsType<T>: SVEHints<T> + Clone where T: Copy + Debug + Send + Sync + CustomNumeric + 'static
Associated type for SVE hints
Required Methods§
Sourcefn ypower(&self) -> i32
fn ypower(&self) -> i32
Power with which the y coordinate scales.
For most kernels, this is 0 (no scaling). For RegularizedBoseKernel, this is 1 (linear scaling).
Sourcefn conv_radius(&self) -> f64
fn conv_radius(&self) -> f64
Convergence radius of the Matsubara basis asymptotic model
For improved numerical accuracy, IR basis functions on Matsubara axis can be evaluated from asymptotic expression for |n| > conv_radius.
Sourcefn regularizer<S: StatisticsType + 'static>(&self, beta: f64, omega: f64) -> f64
fn regularizer<S: StatisticsType + 'static>(&self, beta: f64, omega: f64) -> f64
A regularizer for a bosonic kernel for avoiding a divergence at omega = 0.
The bosonic kernel diverges at omega = 0. This function returns a regularizer w(beta, omega) that avoids this divergence.
G(τ) = - ∫ K(τ, ω) ρ(ω) dω = - ∫ [K(τ, ω) w(ω)] [ρ(ω)/w(ω)] dω.
The spectral function ρ(ω) and the weight function w(ω) must vanish linearly at omega = 0. For a fermionic kernel, this function is expected to return 1.0.
§Arguments
beta- Inverse temperatureomega- Frequency
§Returns
The regularizer value w(beta, omega)
Sourcefn sve_hints<T>(&self, epsilon: f64) -> Self::SVEHintsType<T>
fn sve_hints<T>(&self, epsilon: f64) -> Self::SVEHintsType<T>
Create SVE hints for this kernel type.
Provides discretization hints for singular value expansion computation. The hints include segment information and numerical parameters optimized for the specific kernel type.
@param epsilon Target accuracy for the SVE computation @return SVE hints specific to this kernel type
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.