Skip to main content

conspire/constitutive/solid/thermohyperelastic/
mod.rs

1//! Thermohyperelastic solid constitutive models.
2//!
3//! ---
4//!
5#![doc = include_str!("doc.md")]
6
7#[cfg(feature = "doc")]
8pub mod doc;
9
10#[cfg(test)]
11pub mod test;
12
13mod saint_venant_kirchhoff;
14
15pub use saint_venant_kirchhoff::SaintVenantKirchhoff;
16
17use super::{thermoelastic::Thermoelastic, *};
18use crate::math::Quantity;
19use crate::units::{EnergyDensity, Temperature};
20
21/// Required methods for thermohyperelastic solid constitutive models.
22pub trait Thermohyperelastic
23where
24    Self: Thermoelastic,
25{
26    /// Calculates and returns the Helmholtz free energy density.
27    ///
28    /// ```math
29    /// a = a(\mathbf{F},T)
30    /// ```
31    fn helmholtz_free_energy_density(
32        &self,
33        deformation_gradient: &DeformationGradient,
34        temperature: Quantity<Temperature>,
35    ) -> Result<Quantity<EnergyDensity>, ConstitutiveError>;
36}