conspire/constitutive/solid/
mod.rs

1//! Solid constitutive models.
2
3pub mod elastic;
4pub mod elastic_hyperviscous;
5pub mod hyperelastic;
6pub mod hyperviscoelastic;
7pub mod thermoelastic;
8pub mod thermohyperelastic;
9pub mod viscoelastic;
10
11const TWO_THIRDS: Scalar = 2.0 / 3.0;
12const FIVE_THIRDS: Scalar = 5.0 / 3.0;
13
14use super::{Constitutive, Parameters};
15use crate::{
16    constitutive::ConstitutiveError,
17    math::{
18        ContractFirstSecondIndicesWithSecondIndicesOf, ContractSecondIndexWithFirstIndexOf,
19        IDENTITY, IDENTITY_00, Rank2, Tensor, TensorArray, ZERO_10,
20    },
21    mechanics::{
22        CauchyRateTangentStiffness, CauchyStress, CauchyTangentStiffness, Deformation,
23        DeformationGradient, DeformationGradientRate, DeformationGradientRates,
24        DeformationGradients, FirstPiolaKirchhoffRateTangentStiffness, FirstPiolaKirchhoffStress,
25        FirstPiolaKirchhoffTangentStiffness, Scalar, SecondPiolaKirchhoffRateTangentStiffness,
26        SecondPiolaKirchhoffStress, SecondPiolaKirchhoffTangentStiffness, Times,
27    },
28};
29
30/// Required methods for solid constitutive models.
31pub trait Solid {
32    /// Returns the bulk modulus.
33    fn bulk_modulus(&self) -> &Scalar;
34    /// Returns the shear modulus.
35    fn shear_modulus(&self) -> &Scalar;
36}