conspire/domain/block/element/solid/hyperelastic/mod.rs
1use crate::{
2 constitutive::solid::hyperelastic::Hyperelastic,
3 domain::block::element::solid::elastic::ElasticElement, math::Quantity, units::Energy,
4};
5
6pub trait HyperelasticElement<C>
7where
8 C: Hyperelastic,
9 Self: ElasticElement<C>,
10{
11 fn helmholtz_free_energy(
12 &self,
13 constitutive_model: &C,
14 nodal_coordinates: &Self::Coordinates,
15 ) -> Result<Quantity<Energy>, Self::Error>;
16}