pub trait ExplicitDaeFirstOrderRoot<F, J, Y, Z, U, V, W, T = Time>where
Y: Differentiate<T> + Tensor,
Z: Tensor,
U: TensorVec<Item = Y>,
V: TensorVec<Item = Z>,
W: TensorVec<Item = Derivative<Y, T>>,{
// Required method
fn integrate(
&self,
evolution: impl FnMut(Quantity<T>, &Y, &Z) -> Result<Derivative<Y, T>, String>,
function: impl FnMut(Quantity<T>, &Y, &Z) -> Result<F, String>,
jacobian: impl FnMut(Quantity<T>, &Y, &Z) -> Result<J, String>,
solver: impl FirstOrderRootFinding<F, J, Z>,
time: &[Quantity<T>],
initial_condition: (Y, Z),
equality_constraint: impl FnMut(Quantity<T>) -> EqualityConstraint,
) -> Result<(Times<T>, U, W, V), IntegrationError>;
}Expand description
Integrators for explicit differential-algebraic equations using first-order root-finding.
Required Methods§
fn integrate( &self, evolution: impl FnMut(Quantity<T>, &Y, &Z) -> Result<Derivative<Y, T>, String>, function: impl FnMut(Quantity<T>, &Y, &Z) -> Result<F, String>, jacobian: impl FnMut(Quantity<T>, &Y, &Z) -> Result<J, String>, solver: impl FirstOrderRootFinding<F, J, Z>, time: &[Quantity<T>], initial_condition: (Y, Z), equality_constraint: impl FnMut(Quantity<T>) -> EqualityConstraint, ) -> Result<(Times<T>, U, W, V), IntegrationError>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".