6#include <janus/janus.hpp>
20template <
typename Scalar>
22 return 2.0 * M_PI * janus::sqrt(a * a * a / mu);
34template <
typename Scalar>
35Scalar
velocity(
const Scalar &r,
const Scalar &a,
37 return janus::sqrt(mu * (2.0 / r - 1.0 / a));
48template <
typename Scalar>
50 return -mu / (2.0 * a);
61template <
typename Scalar>
63 return janus::sqrt(2.0 * mu / r);
74template <
typename Scalar>
76 return janus::sqrt(mu / r);
87template <
typename Scalar>
89 return janus::sqrt(mu / (a * a * a));
100template <
typename Scalar>
102 return a * (1.0 - e * e);
114template <
typename Scalar>
116 return a * (1.0 - e * e) / (1.0 + e * janus::cos(nu));
constexpr double mu
Gravitational parameter (GM) [m^3/s^2].
Definition Constants.hpp:13
Definition OrbitalQuantities.hpp:10
Scalar escape_velocity(const Scalar &r, double mu=constants::earth::mu)
Escape velocity at given radius.
Definition OrbitalQuantities.hpp:62
Scalar energy(const Scalar &a, double mu=constants::earth::mu)
Specific orbital energy.
Definition OrbitalQuantities.hpp:49
Scalar mean_motion(const Scalar &a, double mu=constants::earth::mu)
Mean motion.
Definition OrbitalQuantities.hpp:88
Scalar velocity(const Scalar &r, const Scalar &a, double mu=constants::earth::mu)
Orbital velocity (vis-viva equation).
Definition OrbitalQuantities.hpp:35
Scalar radius_at_anomaly(const Scalar &a, const Scalar &e, const Scalar &nu)
Radius at given true anomaly.
Definition OrbitalQuantities.hpp:115
Scalar semi_latus_rectum(const Scalar &a, const Scalar &e)
Semi-latus rectum.
Definition OrbitalQuantities.hpp:101
Scalar period(const Scalar &a, double mu=constants::earth::mu)
Orbital period.
Definition OrbitalQuantities.hpp:21
Scalar circular_velocity(const Scalar &r, double mu=constants::earth::mu)
Circular orbit velocity at given radius.
Definition OrbitalQuantities.hpp:75