adam_core.dynamics.kepler module

adam_core.dynamics.kepler.calc_period(a: Array | ndarray | bool | number | bool | int | float | complex, mu: Array | ndarray | bool | number | bool | int | float | complex) Array | ndarray | bool | number | bool | int | float | complex[source]

Calculate the period of an orbit given the semi-major axis and gravitational parameter.

Parameters:
  • a – Semi-major axis.

  • mu – Gravitational parameter.

Returns:

Period.

Return type:

P

adam_core.dynamics.kepler.calc_periapsis_distance(a: Array | ndarray | bool | number | bool | int | float | complex, e: Array | ndarray | bool | number | bool | int | float | complex) Array | ndarray | bool | number | bool | int | float | complex[source]

Calculate the periapsis distance of an orbit given the semi-major axis and eccentricity.

Parameters:
  • a – Semi-major axis.

  • e – Eccentricity.

Returns:

Periapsis distance.

Return type:

q

adam_core.dynamics.kepler.calc_apoapsis_distance(a: Array | ndarray | bool | number | bool | int | float | complex, e: Array | ndarray | bool | number | bool | int | float | complex) Array | ndarray | bool | number | bool | int | float | complex[source]

Calculate the apoapsis distance of an orbit given the semi-major axis and eccentricity.

Parameters:
  • a – Semi-major axis.

  • e – Eccentricity.

Returns:

Apoapsis distance.

Return type:

Q

adam_core.dynamics.kepler.calc_semi_major_axis(q: Array | ndarray | bool | number | bool | int | float | complex, e: Array | ndarray | bool | number | bool | int | float | complex) Array | ndarray | bool | number | bool | int | float | complex[source]

Calculate the semi-major axis of an orbit given the periapsis distance and eccentricity.

Parameters:
  • q – Periapsis distance.

  • e – Eccentricity.

Returns:

Semi-major axis.

Return type:

a

adam_core.dynamics.kepler.calc_semi_latus_rectum(a: Array | ndarray | bool | number | bool | int | float | complex, e: Array | ndarray | bool | number | bool | int | float | complex) Array | ndarray | bool | number | bool | int | float | complex[source]

Calculate the semi-latus rectum of an orbit given the semi-major axis and eccentricity.

Parameters:
  • a – Semi-major axis.

  • e – Eccentricity.

Returns:

Semi-latus rectum.

Return type:

p

adam_core.dynamics.kepler.calc_mean_motion(a: Array | ndarray | bool | number | bool | int | float | complex, mu: Array | ndarray | bool | number | bool | int | float | complex) Array | ndarray | bool | number | bool | int | float | complex[source]

Calculate the mean motion of an orbit given the semi-major axis and gravitational parameter.

Parameters:
  • a – Semi-major axis.

  • mu – Gravitational parameter.

Returns:

Mean motion in radians per unit time.

Return type:

n

adam_core.dynamics.kepler.calc_mean_anomaly(nu: float, e: float) float[source]

Calculate the mean anomaly given true anomaly in radians and eccentricity.

Parameters:
  • nu (float) – True anomaly in radians.

  • e (float) – Eccentricity.

Returns:

M – Mean anomaly in radians.

Return type:

float

adam_core.dynamics.kepler.solve_kepler(e: float, M: float, max_iter: int = 100, tol: float = 1e-15) float[source]

Solve Kepler’s equation for true anomaly (nu) given eccentricity and mean anomaly using Newton-Raphson. Technically, this is only valid for orbits with eccentricity < 1.0 and eccentricity > 1.0. However, for parabolic orbits (e = 1.0) this function will call the solve_barker function from thor.dynamics.barker.

Parameters:
  • e (float) – Eccentricity

  • M (float) – Mean anomaly in radians.

  • max_iter (int, optional) – Maximum number of iterations over which to converge. If number of iterations is exceeded, will use the value of the relevant anomaly at the last iteration.

  • tol (float, optional) – Numerical tolerance to which to compute anomalies using the Newtown-Raphson method.

Returns:

nu – True anomaly in radians.

Return type:

float

References

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

Elsevier Ltd. ISBN-13: 978-0080977478