Skip to main content

conspire/constitutive/solid/hyperviscoelastic/
mod.rs

1//! Hyperviscoelastic 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 canonical;
14
15use super::{elastic_hyperviscous::ElasticHyperviscous, *};
16use crate::{math::Quantity, units::EnergyDensity};
17
18/// Required methods for hyperviscoelastic solid constitutive models.
19pub trait Hyperviscoelastic
20where
21    Self: ElasticHyperviscous,
22{
23    /// Calculates and returns the Helmholtz free energy density.
24    ///
25    /// ```math
26    /// a = a(\mathbf{F})
27    /// ```
28    fn helmholtz_free_energy_density(
29        &self,
30        deformation_gradient: &DeformationGradient,
31    ) -> Result<Quantity<EnergyDensity>, ConstitutiveError>;
32}