Skip to main content

integrate_rkmk_dae_adaptive_first_order_root

Function integrate_rkmk_dae_adaptive_first_order_root 

Source
pub fn integrate_rkmk_dae_adaptive_first_order_root<Field, Tab, F, J, 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>,
    solver: &impl FirstOrderRootFinding<F, J, Z>,
    time: &[Quantity<T>],
    initial_condition: (Field::Point, Z),
    abs_tol: Scalar,
    rel_tol: Scalar,
    equality_constraint: impl FnMut(Quantity<T>) -> EqualityConstraint,
) -> 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 first-order root-finding at every stage abscissa, built from function/jacobian/solver the same way super::rkmk_dae_step_first_order_root builds it for a single step.