Skip to main content

integrate_rkmk_dae_adaptive_second_order_minimize

Function integrate_rkmk_dae_adaptive_second_order_minimize 

Source
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.