Trait Integrator

Source
pub trait Integrator<S: State> {
    // Required method
    fn propagate_in_place<D1, D2>(
        &mut self,
        start: &mut S,
        pos_diff_eq: D1,
        momentum_diff_eq: D2,
        step: StepSize,
    )
       where D1: Fn(&S) -> S::PositionDerivative,
             D2: Fn(&S) -> S::MomentumDerivative;

    // Provided method
    fn propagate<D1, D2>(
        &mut self,
        start: &S,
        pos_diff_eq: D1,
        momentum_diff_eq: D2,
        step: StepSize,
    ) -> S
       where D1: Fn(&S) -> S::PositionDerivative,
             D2: Fn(&S) -> S::MomentumDerivative { ... }
}

Required Methods§

Source

fn propagate_in_place<D1, D2>( &mut self, start: &mut S, pos_diff_eq: D1, momentum_diff_eq: D2, step: StepSize, )
where D1: Fn(&S) -> S::PositionDerivative, D2: Fn(&S) -> S::MomentumDerivative,

Provided Methods§

Source

fn propagate<D1, D2>( &mut self, start: &S, pos_diff_eq: D1, momentum_diff_eq: D2, step: StepSize, ) -> S
where D1: Fn(&S) -> S::PositionDerivative, D2: Fn(&S) -> S::MomentumDerivative,

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§