pub trait HyperelasticIVFiniteElement<C, const G: usize, const M: usize, const N: usize, const P: usize, V, E>where
C: HyperelasticIV<V>,
C::Residual: Erase<Erased = E>,
Self: ElasticIVFiniteElement<C, G, M, N, P, V, E>,
E: Tensor,
for<'a> &'a C::Residual: Div<C::TangentVv, Output = V>,
for<'a> &'a V: Mul<Quantity<Dimensionless>, Output = V> + Mul<Scalar, Output = V>,
for<'a> &'a Matrix: Mul<&'a V, Output = Vector>,
V: Erase<Erased = E> + Jacobian + Solution,
<V as Tensor>::Unit: UnitDiv<<V as Tensor>::Unit, Output = Dimensionless>,{
// Required method
fn helmholtz_free_energy(
&self,
constitutive_model: &C,
nodal_coordinates: &ElementNodalCoordinates<N>,
internal_variables: &InternalVariables<G, V>,
) -> Result<Quantity<Energy>, FiniteElementError>;
}Required Methods§
fn helmholtz_free_energy( &self, constitutive_model: &C, nodal_coordinates: &ElementNodalCoordinates<N>, internal_variables: &InternalVariables<G, V>, ) -> Result<Quantity<Energy>, FiniteElementError>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".