pub struct ConstantDrag {
pub rho: f64,
pub drag_frame: Frame,
pub estimate: bool,
}Expand description
ConstantDrag implements a constant drag model as defined in Vallado, 4th ed., page 551, with an important caveat.
WARNING: This basic model assumes that the velocity of the spacecraft is identical to the velocity of the upper atmosphere, This is a bad assumption and should not be used for high fidelity simulations. This will be resolved after https://gitlab.com/chrisrabotin/nyx/issues/93 is implemented.
Fields§
§rho: f64atmospheric density in kg/m^3
drag_frame: FrameGeoid causing the drag
estimate: boolSet to true to estimate the coefficient of drag
Trait Implementations§
Source§impl Clone for ConstantDrag
impl Clone for ConstantDrag
Source§fn clone(&self) -> ConstantDrag
fn clone(&self) -> ConstantDrag
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Display for ConstantDrag
impl Display for ConstantDrag
Source§impl ForceModel for ConstantDrag
impl ForceModel for ConstantDrag
Source§fn estimation_index(&self) -> Option<usize>
fn estimation_index(&self) -> Option<usize>
If a parameter of this force model is stored in the spacecraft state, then this function should return the index where this parameter is being affected
Source§fn eom(
&self,
ctx: &Spacecraft,
almanac: Arc<Almanac>,
) -> Result<Vector3<f64>, DynamicsError>
fn eom( &self, ctx: &Spacecraft, almanac: Arc<Almanac>, ) -> Result<Vector3<f64>, DynamicsError>
Defines the equations of motion for this force model from the provided osculating state.
Source§fn dual_eom(
&self,
_osc_ctx: &Spacecraft,
_almanac: Arc<Almanac>,
) -> Result<(Vector3<f64>, Matrix4x3<f64>), DynamicsError>
fn dual_eom( &self, _osc_ctx: &Spacecraft, _almanac: Arc<Almanac>, ) -> Result<(Vector3<f64>, Matrix4x3<f64>), DynamicsError>
Force models must implement their partials, although those will only be called if the propagation requires the
computation of the STM. The
osc_ctx is the osculating context, i.e. it changes for each sub-step of the integrator.
The last row corresponds to the partials of the parameter of this force model wrt the position, i.e. this only applies to conservative forces.Auto Trait Implementations§
impl Freeze for ConstantDrag
impl RefUnwindSafe for ConstantDrag
impl Send for ConstantDrag
impl Sync for ConstantDrag
impl Unpin for ConstantDrag
impl UnwindSafe for ConstantDrag
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.