FirstOrderMinimize

Trait FirstOrderMinimize 

Source
pub trait FirstOrderMinimize<V, T1, T2, T3> {
    type Variables;

    // Required method
    fn minimize(
        &self,
        applied_load: AppliedLoad,
        solver: impl FirstOrderOptimization<Scalar, Self::Variables>,
    ) -> Result<(DeformationGradient, V), ConstitutiveError>;
}
Expand description

First-order minimization methods for hyperelastic solid constitutive models with internal variables.

Required Associated Types§

Source

type Variables

Type representing all variables.

Required Methods§

Source

fn minimize( &self, applied_load: AppliedLoad, solver: impl FirstOrderOptimization<Scalar, Self::Variables>, ) -> Result<(DeformationGradient, V), ConstitutiveError>

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

\Pi(\mathbf{F},\boldsymbol{\lambda}) = a(\mathbf{F}) - \boldsymbol{\lambda}:(\mathbf{F} - \mathbf{F}_0) - \mathbf{P}_0:\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§

Source§

impl<T, V, T1, T2, T3> FirstOrderMinimize<V, T1, T2, T3> for T
where T: HyperelasticIV<V, T1, T2, T3> + ElasticIV<V, T1, T2, T3>, T1: Tensor, T2: Tensor, T3: Tensor, V: Tensor,