pub struct LiangRogersModel {
pub temps: TransformationTemperatures,
pub a_m: f64,
pub b_m: f64,
pub a_a: f64,
pub b_a: f64,
pub h_max: f64,
pub e_a: f64,
pub e_m: f64,
pub theta: f64,
}Expand description
Liang-Rogers cosine kinetics model for SMA phase transformation.
The martensite fraction evolves as:
- Forward (A→M):
ξ = (1 − ξ_0)/2 · cos[a_M(T − Mf) + b_M σ] + (1 + ξ_0)/2 - Reverse (M→A):
ξ = ξ_0/2 · {cos[a_A(T − As) + b_A σ] + 1}
where a_M = π/(Ms − Mf), a_A = π/(Af − As).
Fields§
§temps: TransformationTemperaturesTransformation temperatures.
a_m: f64Cosine coefficient for martensitic transformation.
b_m: f64Stress shift for martensitic transformation.
a_a: f64Cosine coefficient for austenitic transformation.
b_a: f64Stress shift for austenitic transformation.
h_max: f64Maximum transformation strain.
e_a: f64Austenite elastic modulus (Pa).
e_m: f64Martensite elastic modulus (Pa).
theta: f64Thermoelastic tensor (Pa / K).
Implementations§
Source§impl LiangRogersModel
impl LiangRogersModel
Sourcepub fn new(
temps: TransformationTemperatures,
cm: f64,
ca: f64,
h_max: f64,
e_a: f64,
e_m: f64,
theta: f64,
) -> Self
pub fn new( temps: TransformationTemperatures, cm: f64, ca: f64, h_max: f64, e_a: f64, e_m: f64, theta: f64, ) -> Self
Create a Liang-Rogers model.
Sourcepub fn forward_fraction(&self, temp: f64, stress: f64, xi_prev: f64) -> f64
pub fn forward_fraction(&self, temp: f64, stress: f64, xi_prev: f64) -> f64
Forward transformation fraction (A→M) given previous ξ₀.
Sourcepub fn reverse_fraction(&self, temp: f64, stress: f64, xi_prev: f64) -> f64
pub fn reverse_fraction(&self, temp: f64, stress: f64, xi_prev: f64) -> f64
Reverse transformation fraction (M→A) given previous ξ₀.
Sourcepub fn phase_fraction(&self, temp: f64, stress: f64, xi_prev: f64) -> f64
pub fn phase_fraction(&self, temp: f64, stress: f64, xi_prev: f64) -> f64
Determine the phase fraction for a given (T, σ) state.
Sourcepub fn effective_modulus(&self, xi: f64) -> f64
pub fn effective_modulus(&self, xi: f64) -> f64
Effective elastic modulus at martensite fraction ξ.
Trait Implementations§
Source§impl Clone for LiangRogersModel
impl Clone for LiangRogersModel
Source§fn clone(&self) -> LiangRogersModel
fn clone(&self) -> LiangRogersModel
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 LiangRogersModel
impl RefUnwindSafe for LiangRogersModel
impl Send for LiangRogersModel
impl Sync for LiangRogersModel
impl Unpin for LiangRogersModel
impl UnsafeUnpin for LiangRogersModel
impl UnwindSafe for LiangRogersModel
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