ExplicitIV

Trait ExplicitIV 

Source
pub trait ExplicitIV<Y, Z, U, V>
where Self: InterpolateSolutionIV<Y, Z, U, V> + OdeSolver<Y, U>, Y: Tensor, Z: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>, U: TensorVec<Item = Y>, V: TensorVec<Item = Z>,
{ const SLOPES: usize; // Provided method fn integrate( &self, function: impl FnMut(Scalar, &Y, &Z) -> Result<Y, String>, evaluate: impl FnMut(Scalar, &Y, &Z) -> Result<Z, String>, time: &[Scalar], initial_condition: Y, initial_evaluation: Z, ) -> Result<(Vector, U, U, V), IntegrationError> { ... } }
Expand description

Base trait for explicit ordinary differential equation solvers with internal variables.

Required Associated Constants§

Provided Methods§

Source

fn integrate( &self, function: impl FnMut(Scalar, &Y, &Z) -> Result<Y, String>, evaluate: impl FnMut(Scalar, &Y, &Z) -> Result<Z, String>, time: &[Scalar], initial_condition: Y, initial_evaluation: Z, ) -> Result<(Vector, U, U, V), IntegrationError>

Solves an initial value problem by explicitly integrating a system of ordinary differential equations with internal variables.

\frac{dy}{dt} = f(t, y, z),\quad z=g(t, y),\quad y(t_0) = y_0

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<Y, Z, U, V> ExplicitIV<Y, Z, U, V> for BogackiShampine
where Self: OdeSolver<Y, U>, Y: Tensor, Z: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>, U: TensorVec<Item = Y>, V: TensorVec<Item = Z>,

Source§

const SLOPES: usize = 4usize