TimeEvolution

Trait TimeEvolution 

Source
pub trait TimeEvolution: ModelSpec + TimeStep {
    // Required method
    fn iterate<'a, S>(
        &mut self,
        x: &'a mut ArrayBase<S, Self::Dim>,
    ) -> &'a mut ArrayBase<S, Self::Dim>
       where S: DataMut<Elem = Self::Scalar>;

    // Provided method
    fn iterate_n<'a, S>(
        &mut self,
        a: &'a mut ArrayBase<S, Self::Dim>,
        n: usize,
    ) -> &'a mut ArrayBase<S, Self::Dim>
       where S: DataMut<Elem = Self::Scalar> { ... }
}
Expand description

Time-evolution operator

Required Methods§

Source

fn iterate<'a, S>( &mut self, x: &'a mut ArrayBase<S, Self::Dim>, ) -> &'a mut ArrayBase<S, Self::Dim>
where S: DataMut<Elem = Self::Scalar>,

calculate next step

Provided Methods§

Source

fn iterate_n<'a, S>( &mut self, a: &'a mut ArrayBase<S, Self::Dim>, n: usize, ) -> &'a mut ArrayBase<S, Self::Dim>
where S: DataMut<Elem = Self::Scalar>,

calculate n-step

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§