pub struct GriffithCriterion {
pub g_critical: f64,
pub young_modulus: f64,
pub poisson_ratio: f64,
pub shear_modulus: f64,
}Expand description
Griffith fracture criterion for brittle materials.
Fracture occurs when the strain energy release rate G equals or exceeds the critical energy release rate G_c.
For mode I: G = K_I² / E’ For mode II: G = K_II² / E’ For mode III: G = K_III² / (2 μ)
where E’ = E for plane stress and E’ = E / (1-ν²) for plane strain.
Fields§
§g_critical: f64Critical energy release rate G_c (J/m²).
young_modulus: f64Young’s modulus E (Pa).
poisson_ratio: f64Poisson’s ratio ν.
shear_modulus: f64Shear modulus G (Pa) = E / (2(1+ν)).
Implementations§
Source§impl GriffithCriterion
impl GriffithCriterion
Sourcepub fn new(g_critical: f64, young_modulus: f64, poisson_ratio: f64) -> Self
pub fn new(g_critical: f64, young_modulus: f64, poisson_ratio: f64) -> Self
Create a Griffith criterion model.
Sourcepub fn effective_modulus(&self, plane_strain: bool) -> f64
pub fn effective_modulus(&self, plane_strain: bool) -> f64
Effective modulus E’ for plane stress or plane strain.
Sourcepub fn compute_energy_release_rate_mode_i(
&self,
k_i: f64,
plane_strain: bool,
) -> f64
pub fn compute_energy_release_rate_mode_i( &self, k_i: f64, plane_strain: bool, ) -> f64
Compute the energy release rate for mode I loading.
G_I = K_I² / E’
Sourcepub fn compute_energy_release_rate(
&self,
k_i: f64,
k_ii: f64,
k_iii: f64,
plane_strain: bool,
) -> f64
pub fn compute_energy_release_rate( &self, k_i: f64, k_ii: f64, k_iii: f64, plane_strain: bool, ) -> f64
Compute the energy release rate for mixed mode (I + II + III).
G = K_I²/E’ + K_II²/E’ + K_III²/(2μ)
Sourcepub fn is_critical(
&self,
k_i: f64,
k_ii: f64,
k_iii: f64,
plane_strain: bool,
) -> bool
pub fn is_critical( &self, k_i: f64, k_ii: f64, k_iii: f64, plane_strain: bool, ) -> bool
Check whether the Griffith criterion is satisfied (fracture occurs).
Returns true if G >= G_c.
Sourcepub fn critical_sif(&self, plane_strain: bool) -> f64
pub fn critical_sif(&self, plane_strain: bool) -> f64
Critical SIF K_Ic from G_c (mode I, plane strain).
K_Ic = sqrt(G_c * E’)
Sourcepub fn critical_crack_length(&self, stress: f64, plane_strain: bool) -> f64
pub fn critical_crack_length(&self, stress: f64, plane_strain: bool) -> f64
Compute the critical half-crack length a_c for a given applied stress.
a_c = G_c * E’ / (π * σ²)
Trait Implementations§
Source§impl Clone for GriffithCriterion
impl Clone for GriffithCriterion
Source§fn clone(&self) -> GriffithCriterion
fn clone(&self) -> GriffithCriterion
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more