Skip to main content

conspire/constitutive/multiphysics/solid_thermal/thermohyperelastic_thermal_conduction/canonical/
mod.rs

1#[cfg(test)]
2mod test;
3
4use crate::{
5    constitutive::{
6        ConstitutiveError,
7        multiphysics::{Canonical, SolidThermal},
8        solid::thermohyperelastic::Thermohyperelastic,
9        thermal::conduction::ThermalConduction,
10    },
11    math::Quantity,
12    mechanics::DeformationGradient,
13    units::{EnergyDensity, Temperature},
14};
15
16impl<C1, C2> Thermohyperelastic for Canonical<C1, C2>
17where
18    C1: Thermohyperelastic,
19    C2: ThermalConduction,
20{
21    fn helmholtz_free_energy_density(
22        &self,
23        deformation_gradient: &DeformationGradient,
24        temperature: Quantity<Temperature>,
25    ) -> Result<Quantity<EnergyDensity>, ConstitutiveError> {
26        self.solid_constitutive_model()
27            .helmholtz_free_energy_density(deformation_gradient, temperature)
28    }
29}