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)