Skip to main content

HyperelasticIVElements

Trait HyperelasticIVElements 

Source
pub trait HyperelasticIVElements<const G: usize, V, const D: usize>
where Self: ElasticIVElements<G, V, D>, V: Tensor,
{ // Required method fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates<D>, internal_variables: &InternalVariablesField<G, V>, ) -> Result<Quantity<Energy>, ElementModelError>; }

Required Methods§

Source

fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates<D>, internal_variables: &InternalVariablesField<G, V>, ) -> Result<Quantity<Energy>, ElementModelError>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<B, const G: usize, V, const D: usize> HyperelasticIVElements<G, V, D> for Model<B, D>
where B: HyperelasticIVElements<G, V, D>, V: Tensor,

Source§

impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize, V, E> HyperelasticIVElements<G, V, 3> for Block<C, F, G, M, N, P>
where C: HyperelasticIV<V>, C::Residual: Erase<Erased = E>, F: HyperelasticIVFiniteElement<C, G, M, N, P, V, E>, Self: ElasticIVElements<G, V, 3>, 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>,