Struct nyx_space::dynamics::drag::ConstantDrag
source · pub struct ConstantDrag {
pub rho: f64,
pub drag_frame: Frame,
pub cosm: Arc<Cosm>,
}
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: f64
atmospheric density in kg/m^3
drag_frame: Frame
Geoid causing the drag
cosm: Arc<Cosm>
a Cosm reference is needed to convert to the state around the correct planet
Trait Implementations§
source§impl Clone for ConstantDrag
impl Clone for ConstantDrag
source§fn clone(&self) -> ConstantDrag
fn clone(&self) -> ConstantDrag
Returns a copy 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<X: SpacecraftExt> ForceModel<X> for ConstantDrag
impl<X: SpacecraftExt> ForceModel<X> for ConstantDrag
source§fn eom(&self, ctx: &BaseSpacecraft<X>) -> Result<Vector3<f64>, NyxError>
fn eom(&self, ctx: &BaseSpacecraft<X>) -> Result<Vector3<f64>, NyxError>
Defines the equations of motion for this force model from the provided osculating state.
source§fn dual_eom(
&self,
_osc_ctx: &BaseSpacecraft<X>
) -> Result<(Vector3<f64>, Matrix3<f64>), NyxError>
fn dual_eom( &self, _osc_ctx: &BaseSpacecraft<X> ) -> Result<(Vector3<f64>, Matrix3<f64>), NyxError>
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 !RefUnwindSafe for ConstantDrag
impl Send for ConstantDrag
impl Sync for ConstantDrag
impl Unpin for ConstantDrag
impl !UnwindSafe for ConstantDrag
Blanket Implementations§
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Printing<T> for Twhere
T: Display,
impl<T> Printing<T> for Twhere T: Display,
§fn to_str(self) -> String
fn to_str(self) -> String
Method to serialize.
Decorates Vecs with square brackets and tuples with round ones.
Implementation code is in
printing.rs
. §fn to_plainstr(self) -> String
fn to_plainstr(self) -> String
Method to serialize in minimal form (space separated, no brackets)
Implementation code is in
printing.rs
.§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.