pub struct BetaFunction {
pub b0: f64,
pub b1: f64,
pub order: LoopOrder,
pub name: String,
}Expand description
Beta function for a single running coupling constant g.
The beta function β(g) = μ dg/dμ governs how the coupling constant evolves with the RG scale μ. Coefficients b0, b1 follow the convention β(g) = −b0 g² − b1 g³ (perturbative, Euclidean).
Fields§
§b0: f64One-loop coefficient b₀ (≥ 0 for asymptotic freedom).
b1: f64Two-loop coefficient b₁.
order: LoopOrderLoop order used for evaluation.
name: StringName tag for the theory (e.g. “QCD”, “phi4”).
Implementations§
Source§impl BetaFunction
impl BetaFunction
Sourcepub fn new(b0: f64, b1: f64, order: LoopOrder, name: impl Into<String>) -> Self
pub fn new(b0: f64, b1: f64, order: LoopOrder, name: impl Into<String>) -> Self
Construct a new beta function with given coefficients and loop order.
Sourcepub fn evaluate(&self, g: f64) -> f64
pub fn evaluate(&self, g: f64) -> f64
Evaluate β(g) at coupling g.
One-loop: β(g) = −b₀ g² Two-loop: β(g) = −b₀ g² − b₁ g³
Sourcepub fn derivative(&self, g: f64) -> f64
pub fn derivative(&self, g: f64) -> f64
Derivative dβ/dg at coupling g.
Sourcepub fn fixed_point(&self) -> Option<f64>
pub fn fixed_point(&self) -> Option<f64>
Find the non-trivial (Wilson-Fisher) fixed point g* where β(g*) = 0, g* ≠ 0.
Returns None if no real fixed point exists in the perturbative regime.
Sourcepub fn stability_exponent(&self) -> Option<f64>
pub fn stability_exponent(&self) -> Option<f64>
Stability exponent ω = dβ/dg|_{g=g*}.
ω > 0: UV fixed point (IR stable); ω < 0: IR fixed point (UV stable).
Sourcepub fn run_coupling(&self, g0: f64, t_final: f64, steps: usize) -> f64
pub fn run_coupling(&self, g0: f64, t_final: f64, steps: usize) -> f64
Integrate the RG equation dg/dt = β(g) from t=0 to t=t_final
using simple Euler integration with steps steps.
Sourcepub fn running_coupling_one_loop(&self, g0: f64, t: f64) -> f64
pub fn running_coupling_one_loop(&self, g0: f64, t: f64) -> f64
One-loop running coupling: analytic solution g(t) = g₀ / (1 + b₀ g₀ t).
Derived from dg/dt = −b₀ g², which integrates to 1/g(t) = 1/g₀ + b₀ t.
Sourcepub fn landau_pole(&self, g0: f64) -> f64
pub fn landau_pole(&self, g0: f64) -> f64
Landau pole scale: t_L where g → ∞ under one-loop running.
Trait Implementations§
Source§impl Clone for BetaFunction
impl Clone for BetaFunction
Source§fn clone(&self) -> BetaFunction
fn clone(&self) -> BetaFunction
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for BetaFunction
impl RefUnwindSafe for BetaFunction
impl Send for BetaFunction
impl Sync for BetaFunction
impl Unpin for BetaFunction
impl UnsafeUnpin for BetaFunction
impl UnwindSafe for BetaFunction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.