pub trait ImplicitZerothOrder<Y, U>: OdeSolver<Y, U>where
Self: InterpolateSolution<Y, U>,
Y: Solution,
for<'a> &'a Y: Mul<TensorRank0, Output = Y> + Sub<&'a Y, Output = Y>,
U: TensorVec<Item = Y>,{
// Required method
fn integrate(
&self,
function: impl Fn(TensorRank0, &Y) -> Result<Y, IntegrationError>,
time: &[TensorRank0],
initial_condition: Y,
solver: impl ZerothOrderRootFinding<Y>,
) -> Result<(Vector, U, U), IntegrationError>;
}
Expand description
Base trait for zeroth-order implicit ordinary differential equation solvers.
Required Methods§
Sourcefn integrate(
&self,
function: impl Fn(TensorRank0, &Y) -> Result<Y, IntegrationError>,
time: &[TensorRank0],
initial_condition: Y,
solver: impl ZerothOrderRootFinding<Y>,
) -> Result<(Vector, U, U), IntegrationError>
fn integrate( &self, function: impl Fn(TensorRank0, &Y) -> Result<Y, IntegrationError>, time: &[TensorRank0], initial_condition: Y, solver: impl ZerothOrderRootFinding<Y>, ) -> Result<(Vector, U, U), IntegrationError>
Solves an initial value problem by implicitly integrating a system of ordinary differential equations.
\frac{dy}{dt} = f(t, y),\quad y(t_0) = y_0,\quad \frac{\partial f}{\partial y} = J(t, y)
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.