pub trait DynamicsModel<const N: usize, const P: usize> {
const NAME: &'static str;
// Required method
fn rhs(
&self,
time: f64,
state: &[f64; N],
parameters: &[f64; P],
derivative: &mut [f64; N],
) -> Result<()>;
// Provided method
fn validate(
&self,
_time: f64,
_state: &[f64; N],
_parameters: &[f64; P],
) -> Result<()> { ... }
}Expand description
An evaluated first-order dynamics model with N states and P parameters.
Implementations must not allocate in Self::rhs. The integrator validates
dimensions and finite inputs before calling the model.
Required Associated Constants§
Required Methods§
Provided Methods§
Sourcefn validate(
&self,
_time: f64,
_state: &[f64; N],
_parameters: &[f64; P],
) -> Result<()>
fn validate( &self, _time: f64, _state: &[f64; N], _parameters: &[f64; P], ) -> Result<()>
Validates state and parameter domains before a propagation.
The default accepts every finite state and parameter vector.
§Errors
Returns an error when the initial state or parameters are outside the model’s physical domain.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".