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.