Skip to main content

integrate_rkmk

Function integrate_rkmk 

Source
pub fn integrate_rkmk<Field, Tab, U, T>(
    rate: impl FnMut(Quantity<T>, &Field::Point) -> Result<Derivative<Field::Increment, T>, String>,
    time: &[Quantity<T>],
    initial_condition: Field::Point,
) -> Result<(Times<T>, U), IntegrationError>
where Field: Integrable, Tab: ButcherTableau, Field::Point: Clone, Field::Increment: Clone + Differentiable<T>, 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>,
Expand description

Runge–Kutta–Munthe-Kaas: a fixed-step ButcherTableau run in the field’s Lie algebra, with the Integrable::dexpinv correction per stage and a single Integrable::reconstruct per step. Reduces to the plain tableau on a flat field. See super::rkmk_step for the allocation-free single step.