pub struct PuckCriterion {
pub strength: PlyStrength,
pub p_plus_12: f64,
pub p_minus_12: f64,
pub e1: f64,
pub nu12: f64,
}Expand description
Puck action-plane failure criterion for unidirectional composites.
Separates fiber fracture (FF) from inter-fiber fracture (IFF) and identifies the fracture plane orientation.
Fields§
§strength: PlyStrengthPly strength properties.
p_plus_12: f64Inclination parameter p₊₁₂ for IFF Mode A (≈ 0.30 for C/E).
p_minus_12: f64Inclination parameter p₋₁₂ for IFF Modes B/C (≈ 0.25 for C/E).
e1: f64Fiber modulus parallel E₁ (Pa).
nu12: f64Fiber Poisson’s ratio ν₁₂.
Implementations§
Source§impl PuckCriterion
impl PuckCriterion
Sourcepub fn new(
strength: PlyStrength,
p_plus_12: f64,
p_minus_12: f64,
e1: f64,
nu12: f64,
) -> Self
pub fn new( strength: PlyStrength, p_plus_12: f64, p_minus_12: f64, e1: f64, nu12: f64, ) -> Self
Constructs a PuckCriterion with given material parameters.
Sourcepub fn carbon_epoxy_default() -> Self
pub fn carbon_epoxy_default() -> Self
Returns default Puck parameters for carbon/epoxy T300/914.
Sourcepub fn ff_exposure(&self, stress: PlaneStress) -> f64
pub fn ff_exposure(&self, stress: PlaneStress) -> f64
Computes the fiber fracture (FF) exposure f_E,FF.
f_E,FF < 1 → no FF; f_E,FF ≥ 1 → fiber fracture.
Sourcepub fn ff_mode(&self, stress: PlaneStress) -> PuckFfMode
pub fn ff_mode(&self, stress: PlaneStress) -> PuckFfMode
Returns the FF mode.
Sourcepub fn iff_exposure_mode_a(&self, stress: PlaneStress) -> f64
pub fn iff_exposure_mode_a(&self, stress: PlaneStress) -> f64
Computes the IFF exposure on the action plane at ψ = 0° (simplified).
For Mode A (σ_n > 0): f_E,IFF = √[(τ_nt/F_2A)² + (σ_n/F_2t)²] + p₊₁₂ σ_n / F_2A
Uses simplified 2-D (in-plane) version.
Sourcepub fn iff_exposure_mode_bc(&self, stress: PlaneStress) -> f64
pub fn iff_exposure_mode_bc(&self, stress: PlaneStress) -> f64
Computes the IFF exposure for Mode B/C (σ_n ≤ 0).
f_E,IFF = (1/F_2A) √[τ_nt² + (p₋₁₂ σ_n)²] + p₋₁₂ σ_n / F_2A
Sourcepub fn iff_exposure(&self, stress: PlaneStress) -> f64
pub fn iff_exposure(&self, stress: PlaneStress) -> f64
Returns the maximum IFF exposure considering all modes.
Sourcepub fn iff_mode(&self, stress: PlaneStress) -> PuckIffMode
pub fn iff_mode(&self, stress: PlaneStress) -> PuckIffMode
Identifies the IFF mode at the given stress state.
Sourcepub fn has_failed(&self, stress: PlaneStress) -> bool
pub fn has_failed(&self, stress: PlaneStress) -> bool
Returns true if either FF or IFF criterion is violated.
Sourcepub fn fracture_plane_angle(&self, stress: PlaneStress) -> f64
pub fn fracture_plane_angle(&self, stress: PlaneStress) -> f64
Estimates the fracture plane angle θ_fp (degrees) for IFF Mode C.
θ_fp ≈ arccos(F₂c / (2·F₂c + p₋₁₂·|σ₂|)) (approximate Puck formula)
Trait Implementations§
Source§impl Clone for PuckCriterion
impl Clone for PuckCriterion
Source§fn clone(&self) -> PuckCriterion
fn clone(&self) -> PuckCriterion
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more