Explicit

Trait Explicit 

Source
pub trait Explicit<Y, U>
where Self: OdeSolver<Y, U>, Y: Tensor, U: TensorVec<Item = Y>,
{ const SLOPES: usize; // Required method fn integrate( &self, function: impl FnMut(Scalar, &Y) -> Result<Y, String>, time: &[Scalar], initial_condition: Y, ) -> Result<(Vector, U, U), IntegrationError>; }
Expand description

Explicit ordinary differential equation solvers.

Required Associated Constants§

Required Methods§

Source

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

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

\frac{dy}{dt} = f(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, U> Explicit<Y, U> for conspire::math::integrate::BogackiShampine
where Y: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>, U: TensorVec<Item = Y>,

Source§

impl<Y, U> Explicit<Y, U> for conspire::math::integrate::BogackiShampineFixedStep
where Y: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>, U: TensorVec<Item = Y>,

Source§

impl<Y, U> Explicit<Y, U> for conspire::math::integrate::DormandPrince
where Y: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>, U: TensorVec<Item = Y>,

Source§

impl<Y, U> Explicit<Y, U> for conspire::math::integrate::DormandPrinceFixedStep
where Y: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>, U: TensorVec<Item = Y>,

Source§

impl<Y, U> Explicit<Y, U> for Euler
where Y: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y>, U: TensorVec<Item = Y>,

Source§

impl<Y, U> Explicit<Y, U> for Heun
where Y: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y> + Add<&'a Y, Output = Y>, U: TensorVec<Item = Y>,

Source§

impl<Y, U> Explicit<Y, U> for Midpoint
where Y: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y>, U: TensorVec<Item = Y>,

Source§

impl<Y, U> Explicit<Y, U> for Ralston
where Y: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y> + Add<Y, Output = Y>, U: TensorVec<Item = Y>,

Source§

impl<Y, U> Explicit<Y, U> for Verner8
where Y: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>, U: TensorVec<Item = Y>,

Source§

const SLOPES: usize = 13

Source§

impl<Y, U> Explicit<Y, U> for Verner9
where Y: Tensor, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>, U: TensorVec<Item = Y>,

Source§

const SLOPES: usize = 16