adam_core.dynamics.lagrange module

adam_core.dynamics.lagrange.calc_lagrange_coefficients(r: Array, v: Array, dt: float, mu: float = 0.00029591220828411956, max_iter: int = 100, tol: float = 1e-16) Tuple[Tuple[float64, float64, float64, float64], Tuple[float64, float64, float64, float64, float64, float64], float64][source]

Calculate the exact Lagrange coefficients given an initial state defined at t0, and the change in time from t0 to t1 (dt = t1 - t0).

Parameters:
  • r (~jax.numpy.ndarray (3)) – Position vector in au.

  • v (~jax.numpy.ndarray (3)) – Velocity vector in au per day.

  • dt (float) – Time from epoch to which calculate chi in units of decimal days.

  • mu (float) – Gravitational parameter (GM) of the attracting body in units of au**3 / d**2.

  • max_iter (int) – 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) – Numerical tolerance to which to compute chi using the Newtown-Raphson method.

Returns:

  • lagrange_coeffs ((float x 4)) –

    ffloat

    Langrange f coefficient.

    gfloat

    Langrange g coefficient.

    f_dotfloat

    Time deriviative of the Langrange f coefficient.

    g_dotfloat

    Time deriviative of the Langrange g coefficient.

  • stumpff_coeffs ((float x 6)) – First six Stumpff functions (c0, c1, c2, c3, c4, c5)

  • chi (float) – Universal anomaly.

References

[1] Curtis, H. D. (2014). Orbital Mechanics for Engineering Students. 3rd ed.,

Elsevier Ltd. ISBN-13: 978-0080977478

adam_core.dynamics.lagrange.apply_lagrange_coefficients(r: Array, v: Array, f: float, g: float, f_dot: float, g_dot: float) Tuple[Array, Array][source]

Apply the Lagrange coefficients to r and v.

Parameters:
  • r (~jax.numpy.ndarray (3)) – Position vector in au.

  • v (~jax.numpy.ndarray (3)) – Velocity vector in au per day.

  • f (float) – Langrange f coefficient.

  • g (float) – Langrange g coefficient.

  • f_dot (float) – Time deriviative of the Langrange f coefficient.

  • g_dot (float) – Time deriviative of the Langrange g coefficient.

Returns:

  • r_new (~jax.numpy.ndarray (3)) – New position vector in au propagated with the Lagrange coefficients.

  • v_new (~jax.numpy.ndarray (3)) – New velocity vector in au per day propagated with the Lagrange coefficients.