pub trait RootRkmkDaeMinimize<Y>where
Y: Differentiable + Tensor,{
// Required methods
fn root_rkmk_dae_minimize<Tab: ButcherTableau>(
&self,
applied_load: AppliedLoad<'_>,
solver: impl SecondOrderOptimization<Quantity<EnergyDensity>, FirstPiolaKirchhoffStress, FirstPiolaKirchhoffTangentStiffness, DeformationGradient>,
) -> Result<(Times, DeformationGradients, ViscoplasticStateVariablesHistory<Y>), ConstitutiveError>;
fn root_rkmk_dae_adaptive_minimize<Tab: EmbeddedTableau>(
&self,
applied_load: AppliedLoad<'_>,
solver: impl SecondOrderOptimization<Quantity<EnergyDensity>, FirstPiolaKirchhoffStress, FirstPiolaKirchhoffTangentStiffness, DeformationGradient>,
abs_tol: Scalar,
rel_tol: Scalar,
) -> Result<(Times, DeformationGradients, ViscoplasticStateVariablesHistory<Y>), ConstitutiveError>;
}Expand description
RKMK-DAE return-map methods for hyperelastic-viscoplastic solid
constitutive models — the minimize-based sibling of
crate::constitutive::solid::elastic_viscoplastic::RootRkmkDae, for
models whose equilibrium is naturally posed as a potential minimization
rather than a stress-residual root. F_p still advances on its group at
the tableau’s own order; only how F is resolved within a stage differs.
Blanket over any HyperelasticViscoplastic model, same as
SecondOrderMinimize itself.
Required Methods§
Sourcefn root_rkmk_dae_minimize<Tab: ButcherTableau>(
&self,
applied_load: AppliedLoad<'_>,
solver: impl SecondOrderOptimization<Quantity<EnergyDensity>, FirstPiolaKirchhoffStress, FirstPiolaKirchhoffTangentStiffness, DeformationGradient>,
) -> Result<(Times, DeformationGradients, ViscoplasticStateVariablesHistory<Y>), ConstitutiveError>
fn root_rkmk_dae_minimize<Tab: ButcherTableau>( &self, applied_load: AppliedLoad<'_>, solver: impl SecondOrderOptimization<Quantity<EnergyDensity>, FirstPiolaKirchhoffStress, FirstPiolaKirchhoffTangentStiffness, DeformationGradient>, ) -> Result<(Times, DeformationGradients, ViscoplasticStateVariablesHistory<Y>), ConstitutiveError>
F is re-solved by potential minimization at every stage abscissa of
the window while F_p advances on its group, generic over the
hardening variable Y.
Sourcefn root_rkmk_dae_adaptive_minimize<Tab: EmbeddedTableau>(
&self,
applied_load: AppliedLoad<'_>,
solver: impl SecondOrderOptimization<Quantity<EnergyDensity>, FirstPiolaKirchhoffStress, FirstPiolaKirchhoffTangentStiffness, DeformationGradient>,
abs_tol: Scalar,
rel_tol: Scalar,
) -> Result<(Times, DeformationGradients, ViscoplasticStateVariablesHistory<Y>), ConstitutiveError>
fn root_rkmk_dae_adaptive_minimize<Tab: EmbeddedTableau>( &self, applied_load: AppliedLoad<'_>, solver: impl SecondOrderOptimization<Quantity<EnergyDensity>, FirstPiolaKirchhoffStress, FirstPiolaKirchhoffTangentStiffness, DeformationGradient>, abs_tol: Scalar, rel_tol: Scalar, ) -> Result<(Times, DeformationGradients, ViscoplasticStateVariablesHistory<Y>), ConstitutiveError>
As Self::root_rkmk_dae_minimize, but the whole span is stepped
under embedded (Tab::D) error control rather than on the supplied
load grid.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".