pub struct Laminate {
pub plies: Vec<(OrthotropicPly, f64)>,
}Expand description
A composite laminate described by Classical Laminate Theory (CLT).
Plies are ordered from bottom to top; mid-plane is at z = 0.
Fields§
§plies: Vec<(OrthotropicPly, f64)>Plies as (ply, fiber angle in degrees).
Implementations§
Source§impl Laminate
impl Laminate
Sourcepub fn add_ply(&mut self, ply: OrthotropicPly, angle_deg: f64)
pub fn add_ply(&mut self, ply: OrthotropicPly, angle_deg: f64)
Append a ply with the given fiber angle.
Sourcepub fn total_thickness(&self) -> f64
pub fn total_thickness(&self) -> f64
Total laminate thickness h = Σ t_k.
Sourcepub fn b_matrix(&self) -> [[f64; 3]; 3]
pub fn b_matrix(&self) -> [[f64; 3]; 3]
Coupling stiffness matrix B_ij = 0.5 * Σ Q_bar_ij * (z_k² - z_{k-1}²).
Sourcepub fn d_matrix(&self) -> [[f64; 3]; 3]
pub fn d_matrix(&self) -> [[f64; 3]; 3]
Bending stiffness matrix D_ij = (1/3) * Σ Q_bar_ij * (z_k³ - z_{k-1}³).
Sourcepub fn effective_modulus_x(&self) -> f64
pub fn effective_modulus_x(&self) -> f64
Effective x-direction modulus: 1 / (A⁻¹[0][0] * h).
Sourcepub fn effective_modulus_y(&self) -> f64
pub fn effective_modulus_y(&self) -> f64
Effective y-direction modulus: 1 / (A⁻¹[1][1] * h).
Sourcepub fn effective_shear_modulus(&self) -> f64
pub fn effective_shear_modulus(&self) -> f64
Effective in-plane shear modulus: 1 / (A⁻¹[2][2] * h).
Sourcepub fn is_symmetric(&self) -> bool
pub fn is_symmetric(&self) -> bool
Returns true if the laminate is symmetric (B ≈ 0).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Laminate
impl RefUnwindSafe for Laminate
impl Send for Laminate
impl Sync for Laminate
impl Unpin for Laminate
impl UnsafeUnpin for Laminate
impl UnwindSafe for Laminate
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