pub struct PhaseTransition {
pub a0: f64,
pub tc: f64,
pub b: f64,
pub c: f64,
pub temperature: f64,
}Expand description
Landau theory description of a second-order phase transition.
Free energy density: f(φ) = a(T) φ²/2 + b φ⁴/4 + c φ⁶/6 where a(T) = a₀ (T - T_c).
Fields§
§a0: f64Coefficient a₀ (> 0).
tc: f64Critical temperature T_c.
b: f64Coefficient b of the φ⁴ term (> 0 for a normal second-order transition).
c: f64Coefficient c of the φ⁶ term (stabilising; ≥ 0).
temperature: f64Current temperature.
Implementations§
Source§impl PhaseTransition
impl PhaseTransition
Sourcepub fn new(a0: f64, tc: f64, b: f64, c: f64, temperature: f64) -> Self
pub fn new(a0: f64, tc: f64, b: f64, c: f64, temperature: f64) -> Self
Creates a new Landau free energy model.
Sourcepub fn order_parameter(&self) -> f64
pub fn order_parameter(&self) -> f64
Returns the equilibrium order parameter φ* that minimises f(φ).
For T > T_c: φ* = 0. For T < T_c: φ* = √(-a(T)/b) (when c = 0 and b > 0).
Sourcepub fn free_energy_density(&self, phi: f64) -> f64
pub fn free_energy_density(&self, phi: f64) -> f64
Returns the Landau free energy density at order parameter phi.
Sourcepub fn reduced_temperature(&self) -> f64
pub fn reduced_temperature(&self) -> f64
Returns the reduced temperature t = (T - T_c) / T_c.
Sourcepub fn mean_field_beta_exponent(&self) -> f64
pub fn mean_field_beta_exponent(&self) -> f64
Returns the critical exponent β (mean-field value = 1/2).
Sourcepub fn susceptibility(&self) -> f64
pub fn susceptibility(&self) -> f64
Returns the susceptibility χ ~ |T - T_c|^(-γ); mean-field γ = 1.
Trait Implementations§
Source§impl Clone for PhaseTransition
impl Clone for PhaseTransition
Source§fn clone(&self) -> PhaseTransition
fn clone(&self) -> PhaseTransition
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PhaseTransition
impl RefUnwindSafe for PhaseTransition
impl Send for PhaseTransition
impl Sync for PhaseTransition
impl Unpin for PhaseTransition
impl UnsafeUnpin for PhaseTransition
impl UnwindSafe for PhaseTransition
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
Mutably borrows from an owned value. Read more
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.