pub struct ElasticMaterial {
pub stiffness: [f64; 36],
pub density: f64,
}Expand description
Elastic material with a general 6×6 Voigt stiffness tensor.
Provides compliance tensor (S = C⁻¹), engineering constants extracted from the compliance matrix, and elastic wave speeds.
Fields§
§stiffness: [f64; 36]6×6 stiffness matrix in Voigt notation (flat row-major, Pa).
density: f64Mass density (kg/m³).
Implementations§
Source§impl ElasticMaterial
impl ElasticMaterial
Sourcepub fn new(stiffness: [f64; 36], density: f64) -> Self
pub fn new(stiffness: [f64; 36], density: f64) -> Self
Create an ElasticMaterial from a 6×6 stiffness matrix and density.
Sourcepub fn from_isotropic(mat: &LinearElastic, density: f64) -> Self
pub fn from_isotropic(mat: &LinearElastic, density: f64) -> Self
Create from an isotropic LinearElastic material and density.
Sourcepub fn compute_compliance_tensor(&self) -> [f64; 36]
pub fn compute_compliance_tensor(&self) -> [f64; 36]
Compliance tensor S = C⁻¹ (flat row-major 6×6).
Computed by Gauss-Jordan inversion of the stiffness matrix.
Sourcepub fn compute_engineering_constants(&self) -> EngineeringConstants
pub fn compute_engineering_constants(&self) -> EngineeringConstants
Extract engineering constants from the compliance tensor S = C⁻¹.
For a general anisotropic material the compliance matrix S satisfies: E_i = 1 / S[i,i] (i = 0,1,2) G_ij = 1 / S[3+k, 3+k] (k = 0,1,2 → 12, 23, 13) ν_ij = −S[j,i] * E_i
Sourcepub fn compute_wave_speeds(&self) -> WaveSpeeds
pub fn compute_wave_speeds(&self) -> WaveSpeeds
Compute elastic wave speeds from the stiffness tensor and density.
For wave propagation along axis k: v_P_k = √(C[k,k] / ρ) — longitudinal (P-wave) v_S_12 = √(C[5,5] / ρ) — shear in 1-2 plane (C66 component) v_S_23 = √(C[3,3] / ρ) — shear in 2-3 plane (C44 component) v_S_13 = √(C[4,4] / ρ) — shear in 1-3 plane (C55 component)
Voigt order: [11,22,33,23,13,12]
Trait Implementations§
Source§impl Clone for ElasticMaterial
impl Clone for ElasticMaterial
Source§fn clone(&self) -> ElasticMaterial
fn clone(&self) -> ElasticMaterial
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more