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§
Sourcefn 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>
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_0Dyn 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.