Skip to main content

HyperelasticIVFiniteElement

Trait HyperelasticIVFiniteElement 

Source
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§

Source

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".

Implementors§

Source§

impl<C, const G: usize, const N: usize, const O: usize, const P: usize, V, E> HyperelasticIVFiniteElement<C, G, 3, N, P, V, E> for Element<3, G, N, O>
where C: HyperelasticIV<V>, C::Residual: Erase<Erased = E>, Self: ElasticIVFiniteElement<C, G, 3, N, P, V, E> + SolidFiniteElement<G, 3, N, P>, 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>,