conspire 0.7.6

The Rust interface to conspire.
Documentation
//! Thermohyperelastic solid constitutive models.
//!
//! ---
//!
#![doc = include_str!("doc.md")]

#[cfg(feature = "doc")]
pub mod doc;

#[cfg(test)]
pub mod test;

mod saint_venant_kirchhoff;

pub use saint_venant_kirchhoff::SaintVenantKirchhoff;

use super::{thermoelastic::Thermoelastic, *};
use crate::math::Quantity;
use crate::units::{EnergyDensity, Temperature};

/// Required methods for thermohyperelastic solid constitutive models.
pub trait Thermohyperelastic
where
    Self: Thermoelastic,
{
    /// Calculates and returns the Helmholtz free energy density.
    ///
    /// ```math
    /// a = a(\mathbf{F},T)
    /// ```
    fn helmholtz_free_energy_density(
        &self,
        deformation_gradient: &DeformationGradient,
        temperature: Quantity<Temperature>,
    ) -> Result<Quantity<EnergyDensity>, ConstitutiveError>;
}