Trait OrdinaryNumericalMethod

Source
pub trait OrdinaryNumericalMethod<T, Y, D = String>
where T: Real, Y: State<T>, D: CallBackData,
{ // Required methods fn init<F>( &mut self, ode: &F, t0: T, tf: T, y: &Y, ) -> Result<Evals, Error<T, Y>> where F: ODE<T, Y, D>; fn step<F>(&mut self, ode: &F) -> Result<Evals, Error<T, Y>> where F: ODE<T, Y, D>; fn t(&self) -> T; fn y(&self) -> &Y; fn t_prev(&self) -> T; fn y_prev(&self) -> &Y; fn h(&self) -> T; fn set_h(&mut self, h: T); fn status(&self) -> &Status<T, Y, D>; fn set_status(&mut self, status: Status<T, Y, D>); }
Expand description

Trait for ODE solvers.

Implemented by types that can solve ODEs via repeated calls to step.

Required Methods§

Source

fn init<F>( &mut self, ode: &F, t0: T, tf: T, y: &Y, ) -> Result<Evals, Error<T, Y>>
where F: ODE<T, Y, D>,

Initialize the solver before integration

§Arguments
  • system - System of ODEs to solve.
  • t0 - Initial time.
  • tf - Final time.
  • y - Initial state.
§Returns
  • Result<Evals, Error<T, Y>> - Ok if initialization is successful,
Source

fn step<F>(&mut self, ode: &F) -> Result<Evals, Error<T, Y>>
where F: ODE<T, Y, D>,

Advance the solution by one step

§Arguments
  • system - System of ODEs to solve.
§Returns
  • Result<Evals, Errors<T, Y>> - Ok if step is successful with the number of function evaluations,
Source

fn t(&self) -> T

Time of last accepted step

Source

fn y(&self) -> &Y

State at last accepted step

Source

fn t_prev(&self) -> T

Time of previous accepted step

Source

fn y_prev(&self) -> &Y

State at previous accepted step

Source

fn h(&self) -> T

Step size for next step

Source

fn set_h(&mut self, h: T)

Set step size for next step

Source

fn status(&self) -> &Status<T, Y, D>

Current solver status

Source

fn set_status(&mut self, status: Status<T, Y, D>)

Set solver status

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T: Real, Y: State<T>, D: CallBackData> OrdinaryNumericalMethod<T, Y, D> for AdamsPredictorCorrector<Ordinary, Adaptive, T, Y, D, 4>

Source§

impl<T: Real, Y: State<T>, D: CallBackData> OrdinaryNumericalMethod<T, Y, D> for AdamsPredictorCorrector<Ordinary, Fixed, T, Y, D, 4>

Source§

impl<T: Real, Y: State<T>, D: CallBackData, const O: usize, const S: usize, const I: usize> OrdinaryNumericalMethod<T, Y, D> for DiagonallyImplicitRungeKutta<Ordinary, Adaptive, T, Y, D, O, S, I>

Source§

impl<T: Real, Y: State<T>, D: CallBackData, const O: usize, const S: usize, const I: usize> OrdinaryNumericalMethod<T, Y, D> for DiagonallyImplicitRungeKutta<Ordinary, Fixed, T, Y, D, O, S, I>

Source§

impl<T: Real, Y: State<T>, D: CallBackData, const O: usize, const S: usize, const I: usize> OrdinaryNumericalMethod<T, Y, D> for ExplicitRungeKutta<Ordinary, Adaptive, T, Y, D, O, S, I>

Source§

impl<T: Real, Y: State<T>, D: CallBackData, const O: usize, const S: usize, const I: usize> OrdinaryNumericalMethod<T, Y, D> for ExplicitRungeKutta<Ordinary, DormandPrince, T, Y, D, O, S, I>

Source§

impl<T: Real, Y: State<T>, D: CallBackData, const O: usize, const S: usize, const I: usize> OrdinaryNumericalMethod<T, Y, D> for ExplicitRungeKutta<Ordinary, Fixed, T, Y, D, O, S, I>

Source§

impl<T: Real, Y: State<T>, D: CallBackData, const O: usize, const S: usize, const I: usize> OrdinaryNumericalMethod<T, Y, D> for ImplicitRungeKutta<Ordinary, Adaptive, T, Y, D, O, S, I>

Source§

impl<T: Real, Y: State<T>, D: CallBackData, const O: usize, const S: usize, const I: usize> OrdinaryNumericalMethod<T, Y, D> for ImplicitRungeKutta<Ordinary, Fixed, T, Y, D, O, S, I>