ForceModelTranslation#
- class ForceModelTranslation(primary_body: Spacecraft, t0: EpochArray | float = None, third_bodies: list | None = None, cannonball_SRP: bool = False, nplate_SRP: bool = False, sph_harm: bool = False, sph_harm_body: CelestialBody | None = None, sph_harm_order: int | None = None, sph_harm_cs_file: str | None = None, sph_harm_norm_flag: bool | None = None, sph_degree_max: int = 100, finite_burn: bool = False, maneuver: Maneuver | None = None, yarkovsky_effect: bool = False, first_order_gauss_markov: bool = False, fogm_beta: ndarray | float | None = None, piecewise_first_order_gauss_markov: bool = False, pfogm_beta: ndarray | float | None = None, pfogm_batch_length: float | None = None, pfogm_n_batches: int | None = None)#
Bases:
ForceModelHigh-level translational dynamics force model.
This class aggregates and manages all translational (i.e., orbital) force contributions acting on a spacecraft — such as point-mass gravity, spherical harmonics, solar radiation pressure, and thrust — into a single, configurable interface. It acts as the physical backbone of trajectory propagation and estimation in Scarabaeus.
The total translational acceleration is the ordered sum of all active sub-models:
\[\mathbf{a}_\text{total} = \mathbf{a}_\text{grav} + \mathbf{a}_\text{3b} + \mathbf{a}_\text{SRP} + \mathbf{a}_\text{thrust} + \mathbf{a}_\text{Yark} + \mathbf{a}_\text{FOGM} + \cdots\]where each term is non-zero only when the corresponding flag is enabled at construction time.
Unlike low-level force model components (e.g.,
PointMassGravity,CannonballSRP), this class serves as a meta-model: it does not compute accelerations itself, but dynamically instantiates and combines sub-models according to the selected configuration flags.- Parameters:
primary_body (
Spacecraft) – The primary spacecraft object to which the forces are applied. Contains physical properties such as mass, area, and reflectivity.t0 (
EpochArrayorfloat, optional) – The initial epoch for the force model.third_bodies (
list[str]orlist[CelestialBody], optional) – List of point-mass bodies to include whenthird_body=True.cannonball_SRP (
bool, optional) – Enable a classical cannonball solar radiation pressure model. Ignored ifnplate_SRP=True.nplate_SRP (
bool, optional) – Enable a multi-facet (n-plate) SRP model. Takes precedence overcannonball_SRP.sph_harm (
bool, optional) – Enable a spherical harmonics gravity field expansion.sph_harm_body (
CelestialBody, optional) – The celestial body for which the spherical harmonics are defined.sph_harm_order (
int, optional) – The maximum harmonic order (m) to include.sph_harm_cs_file (
str, optional) – Path to the coefficient file containing Cnm/Snm terms.sph_harm_norm_flag (
bool, optional) – Whether the coefficients are normalized (True) or unnormalized (False).sph_degree_max (
int, optional) – The maximum spherical harmonic degree (n) to include. Default is 100.finite_burn (
bool, optional) – Enable continuous-thrust (finite burn) modeling.maneuver (
Maneuver, optional) – Maneuver definition object for finite-burn or impulsive dynamics.yarkovsky_effect (
bool, optional) – Enable Yarkovsky effect modeling.
Notes
The constructor defines which physical models are active and stores all metadata (files, degrees, body references, etc.) needed for later use. Actual sub-model objects are not built until
initialize_force_models()is called, which binds the model to a specificStateArray, reference frame, and epoch.When both SRP flags are
False, SRP effects are excluded entirely. If spherical harmonics are not activated, a baseline point-mass gravity model is always included.See also
scarabaeus.ForceModelAbstract parent class defining the shared interface.
scarabaeus.ForceModelRotationRotational placeholder (attitude dynamics stub).
scarabaeus.PointMassGravitySingle-body Newtonian gravity.
scarabaeus.SphericalHarmonicsGravityGravity field expansion model.
scarabaeus.CannonballSRPCannonball solar radiation pressure model.
scarabaeus.nPlateSRPMulti-plate solar radiation pressure model.
scarabaeus.FiniteBurnContinuous finite-duration thrust model.
scarabaeus.ImpulsiveBurnInstantaneous delta-v model.
References
Vallado, D. A. Fundamentals of Astrodynamics and Applications, 4th Ed., Microcosm Press, 2013.
- Attributes:
base_frameReference frame used for all dynamics computations.
dynamics_mode_listOrdered list of active force model names (strings) built during construction.
fogm_betaTime-correlation coefficient(s) for the first-order Gauss-Markov model.
force_modelsDictionary of instantiated sub-model objects keyed by model name string.
maneuverManeuver definition used by the finite-burn sub-model, or
None.pfogm_batch_lengthDuration of each piecewise FOGM batch in seconds.
pfogm_betaTime-correlation coefficient(s) for the piecewise first-order Gauss-Markov model.
pfogm_n_batchesNumber of batches in the piecewise FOGM model.
primary_bodyPrimary spacecraft object to which all forces are applied.
sph_degree_maxMaximum harmonic degree (n) included in the expansion.
sph_harm_bodyCentral body for which spherical harmonics are defined, or
None.sph_harm_cs_filePath to the Cnm/Snm coefficient file, or
Nonewhen SH is inactive.sph_harm_norm_flagTrueif coefficients are normalized;Falsefor unnormalized.sph_harm_orderMaximum harmonic order (m) used in the spherical harmonics model.
state_vectorState vector bound to this force model.
t0Initial epoch for this force model.
third_bodiesList of point-mass bodies included in third-body gravity, or
None.
Methods
initialize_force_models(state_vector[, ...])Bind this ForceModel to a concrete state and frame, then build internal models.
- property dynamics_mode_list: list[str]#
Ordered list of active force model names (strings) built during construction.
- property fogm_beta: float | None#
Time-correlation coefficient(s) for the first-order Gauss-Markov model.
- property pfogm_beta: float | None#
Time-correlation coefficient(s) for the piecewise first-order Gauss-Markov model.
- property primary_body: Spacecraft#
Primary spacecraft object to which all forces are applied.
- property sph_harm_body: CelestialBody | None#
Central body for which spherical harmonics are defined, or
None.