Skip to main content

ProgressiveFailureAnalysis

Struct ProgressiveFailureAnalysis 

Source
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: usize

Number of plies.

§ply_damage: Vec<f64>

Damage state of each ply (0 = intact, 1 = failed).

§criteria: HashinFailureCriteria

Hashin criteria for this laminate.

Implementations§

Source§

impl ProgressiveFailureAnalysis

Source

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.

Source

pub fn degrade_ply(&mut self, ply_idx: usize, d: f64)

Degrade ply i by setting damage to d (irreversible).

Source

pub fn is_ply_failed(&self, ply_idx: usize) -> bool

Check if ply i is fully failed (d ≥ 1).

Source

pub fn is_fully_failed(&self) -> bool

Check if the entire laminate has failed (all plies failed).

Source

pub fn mean_damage(&self) -> f64

Mean damage across all plies.

Source

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.

Source

pub fn laminate_stiffness_factor(&self) -> f64

Effective laminate stiffness factor (mean over surviving plies).

Trait Implementations§

Source§

impl Clone for ProgressiveFailureAnalysis

Source§

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)

Performs copy-assignment from source. Read more
Source§

impl Debug for ProgressiveFailureAnalysis

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.