Trait ElasticHyperviscous

Source
pub trait ElasticHyperviscous
where Self: Viscoelastic,
{ // Required method fn viscous_dissipation( &self, deformation_gradient: &DeformationGradient, deformation_gradient_rate: &DeformationGradientRate, ) -> Result<Scalar, ConstitutiveError>; // Provided methods fn dissipation_potential( &self, deformation_gradient: &DeformationGradient, deformation_gradient_rate: &DeformationGradientRate, ) -> Result<Scalar, ConstitutiveError> { ... } fn minimize( &self, applied_load: AppliedLoad<'_>, integrator: impl Explicit<DeformationGradientRate, DeformationGradientRates>, solver: impl SecondOrderOptimization<Scalar, FirstPiolaKirchhoffStress, FirstPiolaKirchhoffTangentStiffness, DeformationGradient>, ) -> Result<(Times, DeformationGradients, DeformationGradientRates), IntegrationError> { ... } }
Expand description

Required methods for elastic-hyperviscous constitutive models.

Required Methods§

Source

fn viscous_dissipation( &self, deformation_gradient: &DeformationGradient, deformation_gradient_rate: &DeformationGradientRate, ) -> Result<Scalar, ConstitutiveError>

Calculates and returns the viscous dissipation.

\phi = \phi(\mathbf{F},\dot{\mathbf{F}})

Provided Methods§

Source

fn dissipation_potential( &self, deformation_gradient: &DeformationGradient, deformation_gradient_rate: &DeformationGradientRate, ) -> Result<Scalar, ConstitutiveError>

Calculates and returns the dissipation potential.

\mathbf{P}^e(\mathbf{F}):\dot{\mathbf{F}} + \phi(\mathbf{F},\dot{\mathbf{F}})
Source

fn minimize( &self, applied_load: AppliedLoad<'_>, integrator: impl Explicit<DeformationGradientRate, DeformationGradientRates>, solver: impl SecondOrderOptimization<Scalar, FirstPiolaKirchhoffStress, FirstPiolaKirchhoffTangentStiffness, DeformationGradient>, ) -> Result<(Times, DeformationGradients, DeformationGradientRates), IntegrationError>

Solve for the unknown components of the deformation gradient and rate under an applied load.

\Pi(\mathbf{F},\dot{\mathbf{F}},\boldsymbol{\lambda}) = \mathbf{P}^e(\mathbf{F}):\dot{\mathbf{F}} + \phi(\mathbf{F},\dot{\mathbf{F}}) - \boldsymbol{\lambda}:(\dot{\mathbf{F}} - \dot{\mathbf{F}}_0) - \mathbf{P}_0:\dot{\mathbf{F}}

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§