Skip to main content

ExplicitDaeVariableStepExplicitSecondOrderMinimize

Trait ExplicitDaeVariableStepExplicitSecondOrderMinimize 

Source
pub trait ExplicitDaeVariableStepExplicitSecondOrderMinimize<F, J, H, Y, Z, U, V, W, T = Time>
where Self: ExplicitDaeVariableStepExplicit<Y, Z, U, V, W, T>, Y: Differentiate<T> + Tensor, Z: PartialEq + Tensor, Derivative<Y, T>: Mul<Quantity<T>, Output = Y>, U: TensorVec<Item = Y>, V: TensorVec<Item = Z>, W: TensorVec<Item = Derivative<Y, T>>, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>, for<'a> &'a Derivative<Y, T>: Mul<Scalar, Output = Derivative<Y, T>> + Mul<Quantity<T>, Output = Y>,
{ // Provided method fn integrate_explicit_dae_variable_step_explicit_minimize_2( &self, evolution: impl FnMut(Quantity<T>, &Y, &Z) -> Result<Derivative<Y, T>, String>, function: impl FnMut(Quantity<T>, &Y, &Z) -> Result<F, String>, jacobian: impl FnMut(Quantity<T>, &Y, &Z) -> Result<J, String>, hessian: impl FnMut(Quantity<T>, &Y, &Z) -> Result<H, String>, solver: impl SecondOrderOptimization<F, J, H, Z>, time: &[Quantity<T>], initial_condition: (Y, Z), equality_constraint: impl FnMut(Quantity<T>) -> EqualityConstraint, sparse: Option<SparseSolver>, ) -> Result<(Times<T>, U, W, V), IntegrationError> { ... } }
Expand description

Variable-step explicit integrators for explicit differential-algebraic equations using second-order minimization.

Provided Methods§

Source

fn integrate_explicit_dae_variable_step_explicit_minimize_2( &self, evolution: impl FnMut(Quantity<T>, &Y, &Z) -> Result<Derivative<Y, T>, String>, function: impl FnMut(Quantity<T>, &Y, &Z) -> Result<F, String>, jacobian: impl FnMut(Quantity<T>, &Y, &Z) -> Result<J, String>, hessian: impl FnMut(Quantity<T>, &Y, &Z) -> Result<H, String>, solver: impl SecondOrderOptimization<F, J, H, Z>, time: &[Quantity<T>], initial_condition: (Y, Z), equality_constraint: impl FnMut(Quantity<T>) -> EqualityConstraint, sparse: Option<SparseSolver>, ) -> Result<(Times<T>, U, W, V), IntegrationError>

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

Source§

impl<I, F, J, H, Y, Z, U, V, W, T> ExplicitDaeVariableStepExplicitSecondOrderMinimize<F, J, H, Y, Z, U, V, W, T> for I
where I: ExplicitDaeVariableStepExplicit<Y, Z, U, V, W, T>, Y: Differentiate<T> + Tensor, Z: PartialEq + Tensor, Derivative<Y, T>: Mul<Quantity<T>, Output = Y>, U: TensorVec<Item = Y>, V: TensorVec<Item = Z>, W: TensorVec<Item = Derivative<Y, T>>, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>, for<'a> &'a Derivative<Y, T>: Mul<Scalar, Output = Derivative<Y, T>> + Mul<Quantity<T>, Output = Y>,