pub struct IsotropicDamage {
pub d: f64,
pub energy_release_threshold: f64,
pub damage_evolution_rate: f64,
}Expand description
Isotropic damage model (Lemaitre 1985).
Damage variable D ∈ [0, 1]:
- D = 0: undamaged
- D = 1: fully damaged (cannot carry load)
Effective stress: σ_eff = σ / (1 - D)
Fields§
§d: f64Current damage variable D ∈ [0, 1]
energy_release_threshold: f64Damage initiation threshold Y_0
damage_evolution_rate: f64Exponential softening rate a
Implementations§
Source§impl IsotropicDamage
impl IsotropicDamage
Sourcepub fn new(y0: f64, evolution_rate: f64) -> Self
pub fn new(y0: f64, evolution_rate: f64) -> Self
Create a new isotropic damage model.
§Arguments
y0- Energy release threshold for damage initiationevolution_rate- Exponential softening ratea
Sourcepub fn strain_energy_release_rate(&self, sigma: f64, young_modulus: f64) -> f64
pub fn strain_energy_release_rate(&self, sigma: f64, young_modulus: f64) -> f64
Strain energy release rate: Y = σ² / (2 * E * (1-D)²)
Sourcepub fn update(&mut self, sigma: f64, young_modulus: f64)
pub fn update(&mut self, sigma: f64, young_modulus: f64)
Update damage state based on current stress and stiffness.
D = 1 - (Y_0/Y) * exp(-a*(Y-Y_0)/Y_0) if Y > Y_0 and D_new > D
Sourcepub fn effective_stiffness(&self, young_modulus: f64) -> f64
pub fn effective_stiffness(&self, young_modulus: f64) -> f64
Effective (degraded) stiffness: E_eff = E * (1 - D)
Sourcepub fn effective_stress(&self, nominal_stress: f64) -> f64
pub fn effective_stress(&self, nominal_stress: f64) -> f64
Effective stress (nominal stress divided by integrity): σ_eff = σ / (1 - D)
Trait Implementations§
Source§impl Clone for IsotropicDamage
impl Clone for IsotropicDamage
Source§fn clone(&self) -> IsotropicDamage
fn clone(&self) -> IsotropicDamage
Returns a duplicate of the value. Read more
1.0.0 · 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 IsotropicDamage
impl RefUnwindSafe for IsotropicDamage
impl Send for IsotropicDamage
impl Sync for IsotropicDamage
impl Unpin for IsotropicDamage
impl UnsafeUnpin for IsotropicDamage
impl UnwindSafe for IsotropicDamage
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