HyperelasticViscoplasticFiniteElementBlock

Trait HyperelasticViscoplasticFiniteElementBlock 

Source
pub trait HyperelasticViscoplasticFiniteElementBlock<C, F, const G: usize, const M: usize, const N: usize, const P: usize, Y>
where C: HyperelasticViscoplastic<Y>, F: HyperelasticViscoplasticFiniteElement<C, G, M, N, P, Y>, Self: ElasticViscoplasticFiniteElementBlock<C, F, G, M, N, P, Y>, Y: Tensor,
{ // Required methods fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinates, state_variables: &ViscoplasticStateVariables<G, Y>, ) -> Result<Scalar, FiniteElementBlockError>; fn minimize( &self, integrator: impl ExplicitDaeSecondOrderMinimize<Scalar, NodalForcesSolid, NodalStiffnessesSolid, ViscoplasticStateVariables<G, Y>, NodalCoordinates, ViscoplasticStateVariablesHistory<G, Y>, NodalCoordinatesHistory>, solver: impl SecondOrderOptimization<Scalar, NodalForcesSolid, NodalStiffnessesSolid, NodalCoordinates>, time: &[Scalar], bcs: ElasticViscoplasticBCs, ) -> Result<(Times, NodalCoordinatesHistory, ViscoplasticStateVariablesHistory<G, Y>), IntegrationError>; }

Required Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize, Y> HyperelasticViscoplasticFiniteElementBlock<C, F, G, M, N, P, Y> for Block<C, F, G, M, N, P>
where C: HyperelasticViscoplastic<Y>, F: HyperelasticViscoplasticFiniteElement<C, G, M, N, P, Y>, Self: ElasticViscoplasticFiniteElementBlock<C, F, G, M, N, P, Y>, Y: Tensor,