pub trait VariableStepExplicit<Y, U>where
Self: InterpolateSolution<Y, U> + Explicit<Y, U> + VariableStep,
Y: Tensor,
for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>,
U: TensorVec<Item = Y>,{
// Required methods
fn slopes(
&self,
function: impl FnMut(Scalar, &Y) -> Result<Y, String>,
y: &Y,
t: Scalar,
dt: Scalar,
k: &mut [Y],
y_trial: &mut Y,
) -> Result<Scalar, String>;
fn step(
&self,
function: impl FnMut(Scalar, &Y) -> Result<Y, String>,
y: &mut Y,
t: &mut Scalar,
y_sol: &mut U,
t_sol: &mut Vector,
dydt_sol: &mut U,
dt: &mut Scalar,
k: &mut [Y],
y_trial: &Y,
e: Scalar,
) -> Result<(), String>;
// Provided methods
fn integrate_variable_step(
&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
Variable-step explicit ordinary differential equation solvers.
Required Methods§
fn slopes( &self, function: impl FnMut(Scalar, &Y) -> Result<Y, String>, y: &Y, t: Scalar, dt: Scalar, k: &mut [Y], y_trial: &mut Y, ) -> Result<Scalar, String>
fn step( &self, function: impl FnMut(Scalar, &Y) -> Result<Y, String>, y: &mut Y, t: &mut Scalar, y_sol: &mut U, t_sol: &mut Vector, dydt_sol: &mut U, dt: &mut Scalar, k: &mut [Y], y_trial: &Y, e: Scalar, ) -> Result<(), String>
Provided Methods§
fn integrate_variable_step( &self, function: impl FnMut(Scalar, &Y) -> Result<Y, String>, time: &[Scalar], initial_condition: Y, ) -> Result<(Vector, U, U), 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.