pub struct Drag {
pub density: AtmDensity,
pub drag_frame: Frame,
}
Expand description
Drag
implements all three drag models.
Fields§
§density: AtmDensity
Density computation method
drag_frame: Frame
Frame to compute the drag in
Implementations§
source§impl Drag
impl Drag
sourcepub fn earth_exp(almanac: Arc<Almanac>) -> Result<Arc<Self>, DynamicsError>
pub fn earth_exp(almanac: Arc<Almanac>) -> Result<Arc<Self>, DynamicsError>
Common exponential drag model for the Earth
sourcepub fn std_atm1976(almanac: Arc<Almanac>) -> Result<Arc<Self>, DynamicsError>
pub fn std_atm1976(almanac: Arc<Almanac>) -> Result<Arc<Self>, DynamicsError>
Drag model which uses the standard atmosphere 1976 model for atmospheric density
Trait Implementations§
source§impl ForceModel for Drag
impl ForceModel for Drag
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>, Matrix3<f64>), DynamicsError>
fn dual_eom( &self, _osc_ctx: &Spacecraft, _almanac: Arc<Almanac> ) -> Result<(Vector3<f64>, Matrix3<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.Auto Trait Implementations§
impl Freeze for Drag
impl RefUnwindSafe for Drag
impl Send for Drag
impl Sync for Drag
impl Unpin for Drag
impl UnwindSafe for Drag
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§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 more§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).§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.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.