Propagator Functions¶
Utility functions for orbit propagation operations.
par_propagate_to¶
par_propagate_to builtin ¶
par_propagate_to(propagators: Union[Sequence[KeplerianPropagator], Sequence[SGPPropagator], Sequence[NumericalOrbitPropagator]], target_epoch: Epoch) -> None
Propagate multiple propagators to a target epoch in parallel.
This function takes a list of propagators and calls propagate_to on each one in parallel using the global thread pool. Each propagator's internal state is updated to reflect the new epoch.
The list may freely mix KeplerianPropagator, SGPPropagator, and NumericalOrbitPropagator instances. Propagators are grouped by type and each group is propagated in parallel; results are written back to the original objects in place, preserving their order.
Note: NumericalPropagator (with user-defined Python dynamics) is NOT supported because Python callbacks cannot safely execute in parallel due to the GIL. Use NumericalOrbitPropagator for parallel propagation of orbital dynamics.
Note: For SGPPropagator and NumericalOrbitPropagator, event detectors and event logs are properly preserved during parallel propagation. Events detected during propagation will be available in each propagator's event_log() after the call completes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
propagators | Sequence[KeplerianPropagator] or Sequence[SGPPropagator] or Sequence[NumericalOrbitPropagator] | List of propagators to update. | required |
target_epoch | Epoch | The epoch to propagate all propagators to. | required |
Returns:
| Name | Type | Description |
|---|---|---|
None | None | Propagators are updated in place. |