pub trait AccelModel:
Send
+ Sync
+ Display {
// Required methods
fn eom(
&self,
osc: &Orbit,
almanac: &Almanac,
) -> Result<Vector3<f64>, DynamicsError>;
fn gradient(
&self,
osc_ctx: &Orbit,
almanac: &Almanac,
) -> Result<(Vector3<f64>, Matrix3<f64>), DynamicsError>;
}Expand description
Evaluates mass-independent accelerations acting directly on an orbit.
Unlike ForceModel, implementations of AccelModel operate strictly on an Orbit
state because the evaluated acceleration vector $\mathbf{a}$ is independent of spacecraft mass
or surface geometry (e.g., central-body spherical harmonics, point-mass third-body gravity).
Required Methods§
Sourcefn eom(
&self,
osc: &Orbit,
almanac: &Almanac,
) -> Result<Vector3<f64>, DynamicsError>
fn eom( &self, osc: &Orbit, almanac: &Almanac, ) -> Result<Vector3<f64>, DynamicsError>
Evaluates the acceleration vector $\mathbf{a}$ ($\text{km/s}^2$) in the integration frame at the provided orbital state and epoch.
Sourcefn gradient(
&self,
osc_ctx: &Orbit,
almanac: &Almanac,
) -> Result<(Vector3<f64>, Matrix3<f64>), DynamicsError>
fn gradient( &self, osc_ctx: &Orbit, almanac: &Almanac, ) -> Result<(Vector3<f64>, Matrix3<f64>), DynamicsError>
Evaluates the nominal acceleration vector $\mathbf{a}$ and its spatial partial derivatives for State Transition Matrix (STM) propagation.
Returns a tuple containing:
- The nominal acceleration vector $\mathbf{a}$ ($\text{km/s}^2$).
- The $3 \times 3$ Jacobian matrix of spatial partial derivatives ($\partial \mathbf{a}/\partial \mathbf{r}$, in $\text{s}^{-2}$).
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".