Struct nyx_space::dynamics::orbital::OrbitalDynamics [−][src]
OrbitalDynamics
provides the equations of motion for any celestial dynamic, without state transition matrix computation.
Fields
accel_models: Vec<Arc<dyn AccelModel + Sync + 'a>>
Implementations
impl<'a> OrbitalDynamics<'a>
[src]
pub fn point_masses(
integr_frame: Frame,
bodies: &[Bodies],
cosm: Arc<Cosm>
) -> Arc<Self>
[src]
integr_frame: Frame,
bodies: &[Bodies],
cosm: Arc<Cosm>
) -> Arc<Self>
Initialize point mass dynamics given the EXB IDs and a Cosm
pub fn two_body() -> Arc<Self>
[src]
Initializes a OrbitalDynamics which does not simulate the gravity pull of other celestial objects but the primary one.
pub fn new(accel_models: Vec<Arc<dyn AccelModel + Sync + 'a>>) -> Arc<Self>
[src]
Initialize orbital dynamics with a list of acceleration models
pub fn new_raw(accel_models: Vec<Arc<dyn AccelModel + Sync + 'a>>) -> Self
[src]
Initialize orbital dynamics with a list of acceleration models, without encapsulating it in an Arc Use this only if you need to mutate the dynamics as you’ll need to wrap it in an Arc before propagation.
pub fn with_model(accel_model: Arc<dyn AccelModel + Sync + 'a>) -> Arc<Self>
[src]
Initialize new orbital mechanics with the provided model. Note: Orbital dynamics always include two body dynamics, these cannot be turned off.
pub fn add_model(&mut self, accel_model: Arc<dyn AccelModel + Sync + 'a>)
[src]
Add a model to the currently defined orbital dynamics
Trait Implementations
impl<'a> Clone for OrbitalDynamics<'a>
[src]
fn clone(&self) -> OrbitalDynamics<'a>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<'a> Dynamics for OrbitalDynamics<'a>
[src]
type HyperdualSize = U7
The state of the associated hyperdual state, almost always StateType + U1
type StateType = Orbit
fn eom(
&self,
delta_t_s: f64,
state: &VectorN<f64, U42>,
ctx: &Orbit
) -> Result<VectorN<f64, U42>, NyxError>
[src]
&self,
delta_t_s: f64,
state: &VectorN<f64, U42>,
ctx: &Orbit
) -> Result<VectorN<f64, U42>, NyxError>
fn dual_eom(
&self,
_delta_t_s: f64,
state: &VectorN<Hyperdual<f64, U7>, U6>,
ctx: &Orbit
) -> Result<(Vector6<f64>, Matrix6<f64>), NyxError>
[src]
&self,
_delta_t_s: f64,
state: &VectorN<Hyperdual<f64, U7>, U6>,
ctx: &Orbit
) -> Result<(Vector6<f64>, Matrix6<f64>), NyxError>
fn eom_grad(
&self,
delta_t_s: f64,
state_vec: &VectorN<f64, <Self::StateType as State>::Size>,
state_ctx: &Self::StateType
) -> Result<(VectorN<f64, <Self::StateType as State>::Size>, MatrixN<f64, <Self::StateType as State>::Size>), NyxError> where
DefaultAllocator: Allocator<f64, <Self::StateType as State>::Size> + Allocator<f64, <Self::StateType as State>::Size, <Self::StateType as State>::Size> + Allocator<f64, Self::HyperdualSize> + Allocator<Hyperdual<f64, Self::HyperdualSize>, <Self::StateType as State>::Size>,
Owned<f64, Self::HyperdualSize>: Copy,
[src]
&self,
delta_t_s: f64,
state_vec: &VectorN<f64, <Self::StateType as State>::Size>,
state_ctx: &Self::StateType
) -> Result<(VectorN<f64, <Self::StateType as State>::Size>, MatrixN<f64, <Self::StateType as State>::Size>), NyxError> where
DefaultAllocator: Allocator<f64, <Self::StateType as State>::Size> + Allocator<f64, <Self::StateType as State>::Size, <Self::StateType as State>::Size> + Allocator<f64, Self::HyperdualSize> + Allocator<Hyperdual<f64, Self::HyperdualSize>, <Self::StateType as State>::Size>,
Owned<f64, Self::HyperdualSize>: Copy,
fn finally(
&self,
next_state: Self::StateType
) -> Result<Self::StateType, NyxError>
[src]
&self,
next_state: Self::StateType
) -> Result<Self::StateType, NyxError>
Auto Trait Implementations
impl<'a> !RefUnwindSafe for OrbitalDynamics<'a>
impl<'a> Send for OrbitalDynamics<'a>
impl<'a> Sync for OrbitalDynamics<'a>
impl<'a> Unpin for OrbitalDynamics<'a>
impl<'a> !UnwindSafe for OrbitalDynamics<'a>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn is_in_subset(&self) -> bool
pub fn to_subset_unchecked(&self) -> SS
pub fn from_subset(element: &SS) -> SP
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,