pub struct ProgressiveDamage {
pub e0: f64,
pub nu: f64,
pub d11: f64,
pub d22: f64,
}Expand description
Progressive stiffness degradation model for composite materials.
Tracks separate damage variables D11 (fiber direction) and D22 (transverse direction). Effective stiffness:
E11_eff = (1 - D11) * E11, E22_eff = (1 - D22) * E22
Fields§
§e0: f64Undamaged Young’s modulus (isotropic assumption) [Pa].
nu: f64Poisson’s ratio.
d11: f64Fiber-direction damage variable D11 ∈ [0, 1).
d22: f64Transverse-direction damage variable D22 ∈ [0, 1).
Implementations§
Source§impl ProgressiveDamage
impl ProgressiveDamage
Sourcepub fn new(e0: f64, nu: f64, d11: f64, d22: f64) -> Self
pub fn new(e0: f64, nu: f64, d11: f64, d22: f64) -> Self
Create a new progressive damage model.
Sourcepub fn effective_stiffness_tensor(&self) -> [[f64; 3]; 3]
pub fn effective_stiffness_tensor(&self) -> [[f64; 3]; 3]
3×3 effective stiffness tensor (plane stress, Voigt notation: 11, 22, 12).
Returns [[C11, C12, 0], [C12, C22, 0], [0, 0, C66]].
Sourcepub fn update_damage(&mut self, d11_new: f64, d22_new: f64)
pub fn update_damage(&mut self, d11_new: f64, d22_new: f64)
Update damage variables (irreversible – only increases).
Sourcepub fn residual_strength(&self, sigma0: f64, _alpha_m: f64) -> f64
pub fn residual_strength(&self, sigma0: f64, _alpha_m: f64) -> f64
Residual strength in fiber direction after damage.
σ_res = σ_0 · (1 - D11)^alpha_f · (1 - D22)^alpha_m
Trait Implementations§
Source§impl Clone for ProgressiveDamage
impl Clone for ProgressiveDamage
Source§fn clone(&self) -> ProgressiveDamage
fn clone(&self) -> ProgressiveDamage
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 ProgressiveDamage
impl RefUnwindSafe for ProgressiveDamage
impl Send for ProgressiveDamage
impl Sync for ProgressiveDamage
impl Unpin for ProgressiveDamage
impl UnsafeUnpin for ProgressiveDamage
impl UnwindSafe for ProgressiveDamage
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