コンテンツにスキップ

Dop853

このコンテンツはまだ日本語訳がありません。

Defined in: mod.rs:22

pub struct Dop853

Dormand-Prince 8(5,3) adaptive step-size integrator (DOP853).

Uses a 12-stage embedded Runge-Kutta pair. The 8th-order solution is propagated (local extrapolation), and the step size is controlled on the 5th-order difference alone. Hairer, Norsett & Wanner (1993) combine that with a 3rd-order difference; this does not — see https://github.com/sksat/orts/issues/410 for what that costs.

fn stepper<‘a, S: DynamicalSystem>(&self, system: &‘a S, initial: ::State, t0: f64, dt: f64, tol: Tolerances) -> AdaptiveStepper853<‘a, S>

Create an AdaptiveStepper853 for the given system and initial conditions.


fn step_full<S: DynamicalSystem>(&self, system: &S, t: f64, state: &::State, dt: f64) -> (::State, ::State, ::State)

Perform a single DOP853 step with full output.

Returns (y8, error, k13) where:

  • y8: the raw 8th-order candidate, not projected
  • error: error estimate, belonging to that raw candidate
  • k13: 13th-stage derivative, f(t + dt, y8)

This is the low-level building block for a caller running its own step-size control, so it stops short of the projection: error pairs with the raw candidate, and mixing it with a projected state is inconsistent. A caller that accepts the step owes the state its OdeState::project call, and may reuse k13 as the next first stage only while that projection reports Projection::Unchanged (Projection::Changed means k13 was evaluated at a state that no longer exists). Integrator::step and AdaptiveStepper853 do this for you — the stepper re-evaluates the first stage at the projected state instead of carrying k13 over.

Projection::Unchanged: crate::Projection::Unchanged


fn integrate_adaptive_with_events<S, F, E, B>(&self, system: &S, initial: ::State, t0: f64, t_end: f64, dt_initial: f64, tol: &Tolerances, callback: F, event_check: E) -> IntegrationOutcome<::State, B> where S: DynamicalSystem, F: FnMut(f64, &::State), E: [Fn(f64, &::State) -> ControlFlow<B>](https://doc.rust-lang.org/std/ops/function/trait.Fn.html)

Integrate adaptively with event detection and NaN/Inf checking.