pub struct ProgressiveFailureAnalysis {
pub n_plies: usize,
pub ply_damage: Vec<f64>,
pub criteria: HashinFailureCriteria,
}Expand description
Progressive failure analysis (PFA) for a composite laminate.
Each ply is assigned a scalar damage variable d ∈ [0, 1]. When d = 1 for a ply, it is considered fully failed and its stiffness contribution is set to zero (ply-discount method).
Fields§
§n_plies: usizeNumber of plies.
ply_damage: Vec<f64>Damage state of each ply (0 = intact, 1 = failed).
criteria: HashinFailureCriteriaHashin criteria for this laminate.
Implementations§
Source§impl ProgressiveFailureAnalysis
impl ProgressiveFailureAnalysis
Sourcepub fn new(
n_plies: usize,
x_t: f64,
x_c: f64,
y_t: f64,
y_c: f64,
s12: f64,
) -> Self
pub fn new( n_plies: usize, x_t: f64, x_c: f64, y_t: f64, y_c: f64, s12: f64, ) -> Self
Create a new PFA model with n_plies plies.
Sourcepub fn degrade_ply(&mut self, ply_idx: usize, d: f64)
pub fn degrade_ply(&mut self, ply_idx: usize, d: f64)
Degrade ply i by setting damage to d (irreversible).
Sourcepub fn is_ply_failed(&self, ply_idx: usize) -> bool
pub fn is_ply_failed(&self, ply_idx: usize) -> bool
Check if ply i is fully failed (d ≥ 1).
Sourcepub fn is_fully_failed(&self) -> bool
pub fn is_fully_failed(&self) -> bool
Check if the entire laminate has failed (all plies failed).
Sourcepub fn mean_damage(&self) -> f64
pub fn mean_damage(&self) -> f64
Mean damage across all plies.
Sourcepub fn apply_stress(
&mut self,
ply_idx: usize,
sigma1: f64,
sigma2: f64,
tau12: f64,
d_increment: f64,
)
pub fn apply_stress( &mut self, ply_idx: usize, sigma1: f64, sigma2: f64, tau12: f64, d_increment: f64, )
Apply ply-level stress state and update damage based on Hashin criteria.
Sourcepub fn laminate_stiffness_factor(&self) -> f64
pub fn laminate_stiffness_factor(&self) -> f64
Effective laminate stiffness factor (mean over surviving plies).
Trait Implementations§
Source§impl Clone for ProgressiveFailureAnalysis
impl Clone for ProgressiveFailureAnalysis
Source§fn clone(&self) -> ProgressiveFailureAnalysis
fn clone(&self) -> ProgressiveFailureAnalysis
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 ProgressiveFailureAnalysis
impl RefUnwindSafe for ProgressiveFailureAnalysis
impl Send for ProgressiveFailureAnalysis
impl Sync for ProgressiveFailureAnalysis
impl Unpin for ProgressiveFailureAnalysis
impl UnsafeUnpin for ProgressiveFailureAnalysis
impl UnwindSafe for ProgressiveFailureAnalysis
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