adam_core.dynamics.propagation module¶
- adam_core.dynamics.propagation.propagate_2body(orbits: Orbits, times: Timestamp, max_iter: int = 1000, tol: float = 1e-14, *, include_nongrav: bool = True, max_processes: int | None = 1, chunk_size: int = 100) Orbits[source]¶
Propagate orbits using the 2-body universal anomaly formalism.
- Parameters:
orbits (~adam_core.orbits.orbits.Orbits (N)) – Cartesian orbits with position in units of au and velocity in units of au per day.
times (Timestamp (M)) – Epochs to which to propagate each orbit. If a single epoch is given, all orbits are propagated to this epoch. If multiple epochs are given, then each orbit to will be propagated to each epoch.
max_iter (int, optional) – Maximum number of iterations over which to converge. If number of iterations is exceeded, will return the value of the universal anomaly at the last iteration.
tol (float, optional) – Numerical tolerance to which to compute universal anomaly using the Newtown-Raphson method.
include_nongrav (bool, optional) – If True (default), raise a ValueError when any orbit carries non-zero non-gravitational parameters, since 2-body dynamics cannot apply them. If False, strip the non-gravitational parameters (and the non-gravitational covariance block) and propagate gravity-only.
- Returns:
orbits – Orbits propagated to each MJD. Covariances are propagated with the 2-body state-transition Jacobian; for orbits carrying the non-gravitational (A1, A2, A3) covariance block, the block is carried through as dynamically inert, consistent with the 2-body force model (which admits no non-gravitational accelerations).
- Return type:
~adam_core.orbits.orbits.Orbits (N*M)