Source code for adam_core.dynamics.barker

import jax.numpy as jnp
from jax import config, jit

config.update("jax_enable_x64", True)


[docs] @jit def solve_barker(M: float) -> float: """ Solve Barker's equation for true anomaly given parabolic mean anomaly. Parameters ---------- M : float Parabolic mean anomaly (equal to sqrt(mu / (2 q^3))(t0 - tp)). Returns ------- nu : float True anomaly in radians. References ---------- [1] Curtis, H. D. (2014). Orbital Mechanics for Engineering Students. 3rd ed., Elsevier Ltd. ISBN-13: 978-0080977478 """ # Equation 3.32 in Curtis (2014) [1] nu = 2 * jnp.arctan( (3 * M + jnp.sqrt((3 * M) ** 2 + 1)) ** (1 / 3) - (3 * M + jnp.sqrt((3 * M) ** 2 + 1)) ** (-1 / 3) ) return nu