pub struct TanakaModel {
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
Tanaka exponential kinetics model for SMA phase transformation.
The martensite fraction evolves as:
- Forward (A→M):
ξ = 1 − exp(a_M (Ms − T) + b_M σ) - Reverse (M→A):
ξ = exp(a_A (As − T) + b_A σ)
where a_M, b_M, a_A, b_A are material constants derived
from the transformation temperatures and Clausius-Clapeyron slope.
Fields§
§temps: TransformationTemperaturesTransformation temperatures.
a_m: f64Exponential constant for martensitic transformation.
b_m: f64Stress constant for martensitic transformation.
a_a: f64Exponential constant for austenitic transformation.
b_a: f64Stress constant 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 TanakaModel
impl TanakaModel
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 Tanaka model from transformation temperatures and material constants.
§Parameters
temps– transformation temperaturescm– Clausius-Clapeyron slope for martensite (Pa / K)ca– Clausius-Clapeyron slope for austenite (Pa / K)h_max– maximum transformation straine_a– austenite modulus (Pa)e_m– martensite modulus (Pa)theta– thermoelastic tensor (Pa / K)
Sourcepub fn forward_fraction(&self, temp: f64, stress: f64) -> f64
pub fn forward_fraction(&self, temp: f64, stress: f64) -> f64
Forward transformation (A → M): compute new ξ.
Sourcepub fn reverse_fraction(&self, temp: f64, stress: f64) -> f64
pub fn reverse_fraction(&self, temp: f64, stress: f64) -> f64
Reverse transformation (M → A): compute new ξ.
Sourcepub fn phase_fraction(&self, temp: f64, stress: f64) -> f64
pub fn phase_fraction(&self, temp: f64, stress: f64) -> f64
Determine the phase fraction for a given (T, σ) state.
Selects forward or reverse based on where the temperature falls relative to the (stress-shifted) transformation temperatures.
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 TanakaModel
impl Clone for TanakaModel
Source§fn clone(&self) -> TanakaModel
fn clone(&self) -> TanakaModel
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more