ForceModel#
- class ForceModel#
Bases:
ABCAbstract base class for force models.
A
ForceModelaggregates one or moreDynamicModelsub-models into a single configurable interface. The total translational acceleration delivered to the integrator is the sum of all active sub-model contributions:\[\mathbf{a}(t) = \sum_{i} \mathbf{a}_i(\mathbf{r},\,\dot{\mathbf{r}},\,\mathbf{p},\,t)\]where each \(\mathbf{a}_i\) is computed by the corresponding
DynamicModelinstance and \(\mathbf{p}\) is the vector of solve-for or consider parameters.In addition to the total acceleration, the
ForceModelcollects the partial derivatives \(\partial \mathbf{a} / \partial \mathbf{p}\) from each active sub-model. These partials populate the \(\partial \mathbf{f} / \partial \mathbf{p}\) term required to integrate the variational equations\[\dot{\mathbf{S}} = F\,\mathbf{S} + \frac{\partial \mathbf{f}}{\partial \mathbf{p}}\]whose solution \(\mathbf{S}\) is the sensitivity matrix used by the orbit-determination filter.
- Parameters:
None
Notes
Concrete sub-classes must override
_initialize_force_models()and_compute_total_acceleration(). Callinitialize_force_models()before invoking any compute methods to bind the model to a concreteStateArray, reference frame, and epoch.See also
scarabaeus.ForceModelTranslationTranslational force model aggregator.
scarabaeus.DynamicModelBase class for individual force model components.
- Attributes:
base_frameReference frame used for all dynamics computations.
force_modelsDictionary of instantiated sub-model objects keyed by model name string.
state_vectorState vector bound to this force model.
t0Initial epoch for this force model.
Methods
initialize_force_models(state_vector[, ...])Bind this ForceModel to a concrete state and frame, then build internal models.
- initialize_force_models(state_vector: StateArray, base_frame: Frame | None = None) None#
Bind this ForceModel to a concrete state and frame, then build internal models.
Must be called before any compute methods are invoked.
- Parameters:
state_vector (
StateArray) – Initial state vector that internal force models will be constructed from.base_frame (
Frame, optional) – Reference frame for all dynamics computations. Defaults to J2000 ifNone.
- property force_models: dict#
Dictionary of instantiated sub-model objects keyed by model name string.
- Raises:
RuntimeError – If the model has not been initialized.
- property state_vector: StateArray#
State vector bound to this force model.
- Raises:
RuntimeError – If
initialize_force_modelshas not been called.
- property t0: EpochArray#
Initial epoch for this force model.
- Raises:
RuntimeError – If
initialize_force_modelshas not been called.