pub fn integrate_rkmk_dae_adaptive_second_order_minimize<Field, Tab, F, J, H, Z, U, V, T>(
rate: impl FnMut(Quantity<T>, &Field::Point, &Z) -> Result<Derivative<Field::Increment, T>, String>,
function: impl FnMut(Quantity<T>, &Field::Point, &Z) -> Result<F, String>,
jacobian: impl FnMut(Quantity<T>, &Field::Point, &Z) -> Result<J, String>,
hessian: impl FnMut(Quantity<T>, &Field::Point, &Z) -> Result<H, String>,
solver: &impl SecondOrderOptimization<F, J, H, Z>,
time: &[Quantity<T>],
initial_condition: (Field::Point, Z),
abs_tol: Scalar,
rel_tol: Scalar,
equality_constraint: impl FnMut(Quantity<T>) -> EqualityConstraint,
sparse: Option<SparseSolver>,
) -> Result<(Times<T>, U, V), IntegrationError>where
Field: Integrable,
Tab: EmbeddedTableau,
Field::Point: Clone,
Field::Increment: Clone + Differentiable<T>,
Z: Clone,
T: Copy,
Quantity<T>: Mul<Scalar, Output = Quantity<T>>,
for<'a> &'a Derivative<Field::Increment, T>: Mul<Quantity<T>, Output = Field::Increment>,
U: TensorVec<Item = Field::Point>,
V: TensorVec<Item = Z>,Expand description
integrate_rkmk_dae_adaptive with the algebraic unknown resolved by
second-order minimization at every stage abscissa, built from
function/jacobian/hessian/solver the same way
super::rkmk_dae_step_second_order_minimize builds it for a single step.