pub struct SccrModel {
pub k_iscc: f64,
pub k_ic: f64,
pub v_plateau: f64,
pub stage1_exponent: f64,
pub stage1_coeff: f64,
}Expand description
Stress corrosion cracking model.
Combines fracture mechanics (KI) with the electrochemical dissolution mechanism (anodic dissolution model).
Fields§
§k_iscc: f64Threshold stress intensity factor KIscc [MPa·m^0.5].
k_ic: f64Fracture toughness KIc [MPa·m^0.5].
v_plateau: f64Stage II (plateau) crack velocity [m/s].
stage1_exponent: f64Exponent in Stage I power-law velocity: v = A·(KI − KIscc)^n.
stage1_coeff: f64Coefficient A in Stage I velocity [m/s · (MPa·m^0.5)^(−n)].
Implementations§
Source§impl SccrModel
impl SccrModel
Sourcepub fn new(
k_iscc: f64,
k_ic: f64,
v_plateau: f64,
stage1_exponent: f64,
stage1_coeff: f64,
) -> Self
pub fn new( k_iscc: f64, k_ic: f64, v_plateau: f64, stage1_exponent: f64, stage1_coeff: f64, ) -> Self
Create a new SCC model.
Sourcepub fn crack_velocity(&self, ki: f64) -> f64
pub fn crack_velocity(&self, ki: f64) -> f64
Crack propagation velocity [m/s] at stress intensity ki [MPa·m^0.5].
Three-stage model:
- KI < KIscc → 0 (no crack growth)
- KIscc ≤ KI < KIc → Stage I/II (Plateau or power-law)
- KI ≥ KIc → catastrophic (returns
f64::INFINITY)
Sourcepub fn time_to_fracture(
&self,
a0: f64,
sigma: f64,
geometry_factor_y: f64,
steps: usize,
) -> f64
pub fn time_to_fracture( &self, a0: f64, sigma: f64, geometry_factor_y: f64, steps: usize, ) -> f64
Time to fracture [s] from an initial crack of length a0 [m]
to the critical length ac [m] under constant stress sigma [MPa].
Critical crack length: ac = (KIc / (Y · σ · √π))²
Uses simple trapezoidal integration over crack length.
§Arguments
a0– initial half-crack length [m]sigma– applied stress [MPa]geometry_factor_y– geometry correction factor Y (≈ 1.0 for centre crack)steps– integration steps
Sourcepub fn susceptibility_index(&self) -> f64
pub fn susceptibility_index(&self) -> f64
Susceptibility index (0–1): (KIscc / KIc).
Values close to 1 indicate low susceptibility (wide safe window).