pub trait Explicit<Y, U>where
Self: InterpolateSolution<Y, U> + OdeSolver<Y, U>,
Y: Tensor,
for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>,
U: TensorVec<Item = Y>,{
const SLOPES: usize;
// Required methods
fn dt_beta(&self) -> Scalar;
fn dt_expn(&self) -> Scalar;
// Provided methods
fn integrate(
&self,
function: impl FnMut(Scalar, &Y) -> Result<Y, String>,
time: &[Scalar],
initial_condition: Y,
) -> Result<(Vector, U, U), IntegrationError> { ... }
fn time_step(&self, error: Scalar, dt: &mut Scalar) { ... }
}Expand description
Base trait for explicit ordinary differential equation solvers.
Required Associated Constants§
Required Methods§
Provided Methods§
Sourcefn integrate(
&self,
function: impl FnMut(Scalar, &Y) -> Result<Y, String>,
time: &[Scalar],
initial_condition: Y,
) -> Result<(Vector, U, U), IntegrationError>
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_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.