ExplicitDaeFirstOrderRoot

Trait ExplicitDaeFirstOrderRoot 

Source
pub trait ExplicitDaeFirstOrderRoot<F, J, Y, Z, U, V>
where Y: Tensor, Z: Tensor, U: TensorVec<Item = Y>, V: TensorVec<Item = Z>,
{ // Required method fn integrate( &self, evolution: impl FnMut(Scalar, &Y, &Z) -> Result<Y, String>, function: impl FnMut(Scalar, &Y, &Z) -> Result<F, String>, jacobian: impl FnMut(Scalar, &Y, &Z) -> Result<J, String>, solver: impl FirstOrderRootFinding<F, J, Z>, time: &[Scalar], initial_condition: (Y, Z), equality_constraint: impl FnMut(Scalar) -> EqualityConstraint, ) -> Result<(Vector, U, U, V), IntegrationError>; }

Required Methods§

Source

fn integrate( &self, evolution: impl FnMut(Scalar, &Y, &Z) -> Result<Y, String>, function: impl FnMut(Scalar, &Y, &Z) -> Result<F, String>, jacobian: impl FnMut(Scalar, &Y, &Z) -> Result<J, String>, solver: impl FirstOrderRootFinding<F, J, Z>, time: &[Scalar], initial_condition: (Y, Z), equality_constraint: impl FnMut(Scalar) -> EqualityConstraint, ) -> Result<(Vector, U, U, V), IntegrationError>

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

Source§

impl<F, J, Y, Z, U, V> ExplicitDaeFirstOrderRoot<F, J, Y, Z, U, V> for DormandPrince
where Y: Tensor, Z: Tensor, U: TensorVec<Item = Y>, V: TensorVec<Item = Z>, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>,

Source§

impl<F, J, Y, Z, U, V> ExplicitDaeFirstOrderRoot<F, J, Y, Z, U, V> for Verner8
where Y: Tensor, Z: Tensor, U: TensorVec<Item = Y>, V: TensorVec<Item = Z>, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>,

Source§

impl<F, J, Y, Z, U, V> ExplicitDaeFirstOrderRoot<F, J, Y, Z, U, V> for Verner9
where Y: Tensor, Z: Tensor, U: TensorVec<Item = Y>, V: TensorVec<Item = Z>, for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>,