nyx_space::dynamics

Trait AccelModel

Source
pub trait AccelModel:
    Send
    + Sync
    + Display {
    // Required methods
    fn eom(
        &self,
        osc: &Orbit,
        almanac: Arc<Almanac>,
    ) -> Result<Vector3<f64>, DynamicsError>;
    fn dual_eom(
        &self,
        osc_ctx: &Orbit,
        almanac: Arc<Almanac>,
    ) -> Result<(Vector3<f64>, Matrix3<f64>), DynamicsError>;
}
Expand description

The AccelModel trait handles immutable dynamics which return an acceleration. Those can be added directly to Orbital Dynamics for example.

Examples include spherical harmonics, i.e. accelerations which do not need to save the current state, only act on it.

Required Methods§

Source

fn eom( &self, osc: &Orbit, almanac: Arc<Almanac>, ) -> Result<Vector3<f64>, DynamicsError>

Defines the equations of motion for this force model from the provided osculating state in the integration frame.

Source

fn dual_eom( &self, osc_ctx: &Orbit, almanac: Arc<Almanac>, ) -> Result<(Vector3<f64>, Matrix3<f64>), DynamicsError>

Acceleration models must implement their partials, although those will only be called if the propagation requires the computation of the STM.

Implementors§