Astro  0.0.0
A C++ library for space dynamics
Loading...
Searching...
No Matches
Astro::OrbitalElements::Keplerian Struct Reference

Structure container for the (modified) Keplerian orbital elements. More...

#include <OrbitalElements.hxx>

Public Member Functions

 Keplerian ()
 
 Keplerian (Real t_a, Real t_e, Real t_i, Real t_Omega, Real t_omega)
 
 Keplerian (Keplerian const &)=default
 
 Keplerian (Keplerian &&)=default
 
Keplerianoperator= (const Keplerian &)=default
 
Keplerianoperator= (Keplerian &&)=default
 
std::string info () const
 
void info (std::ostream &os)
 
void reset ()
 
bool sanity_check () const
 
bool is_singular (Real tol_i=EPSILON_LOW, Real tol_e=EPSILON_LOW) const
 
bool is_nonsingular (Real tol_i=EPSILON_LOW, Real tol_e=EPSILON_LOW) const
 
Real u () const
 
Real p () const
 

Public Attributes

Real a {QUIET_NAN}
 
Real e {QUIET_NAN}
 
Real i {QUIET_NAN}
 
Real Omega {QUIET_NAN}
 
Real omega {QUIET_NAN}
 

Detailed Description

Structure container for the (modified) Keplerian orbital elements, which are:

  • the semi-major axis \( a \) (UA),
  • the eccentricity \( e \in [0, 1] \) (-),
  • the inclination \( i \) (rad),
  • the right ascension of the ascending node \( \Omega \) (rad),
  • the argument of periapsis \( \omega \) (rad). Singular at \( e = 0 \), or \( 1 \), \( i = 0 \), or \( \pi \).
Note
For more information on orbital elements, refer to "Survey of Orbital Elements", by G. R. Hintz, Journal of Guidance, Control, and Dynamics, Vol. 31, No. 3, May-June 2008.

Constructor & Destructor Documentation

◆ Keplerian() [1/4]

Astro::OrbitalElements::Keplerian::Keplerian ( )
inline

Structure constructor for the (modified) Keplerian orbital elements.

◆ Keplerian() [2/4]

Astro::OrbitalElements::Keplerian::Keplerian ( Real t_a,
Real t_e,
Real t_i,
Real t_Omega,
Real t_omega )
inline

Structure constructor for the (modified) Keplerian orbital elements.

Parameters
[in]t_aThe semi-major axis \( a \).
[in]t_eThe eccentricity \( e \).
[in]t_iThe inclination \( i \).
[in]t_OmegaThe longitude of the ascending node \( \Omega \).
[in]t_omegaThe argument of periapsis \( \omega \).

◆ Keplerian() [3/4]

Astro::OrbitalElements::Keplerian::Keplerian ( Keplerian const & )
default

Enable the default Keplerian orbital elements copy constructor.

◆ Keplerian() [4/4]

Astro::OrbitalElements::Keplerian::Keplerian ( Keplerian && )
default

Enable the default Keplerian orbital elements move constructor.

Member Function Documentation

◆ info() [1/2]

std::string Astro::OrbitalElements::Keplerian::info ( ) const
inline

Print the Keplerian orbital elements on a string.

Returns
The Keplerian orbital elements string.

◆ info() [2/2]

void Astro::OrbitalElements::Keplerian::info ( std::ostream & os)
inline

Print the keplerian orbital elements on a stream.

Parameters
[in,out]osOutput stream.

◆ is_nonsingular()

bool Astro::OrbitalElements::Keplerian::is_nonsingular ( Real tol_i = EPSILON_LOW,
Real tol_e = EPSILON_LOW ) const
inline

Check if the keplerian orbit is singular, i.e., * \( \pi-\varepsilon_i < i < \pi+\varepsilon_i\), and \( e < 1 - \varepsilon_e\).

Parameters
[in]tol_iTolerance \( \varepsilon_i \) for the singularity check on the inclination.
[in]tol_eTolerance \( \varepsilon_e \) for the singularity check on the eccentricity.
Returns
True if the keplerian orbit is nonsingular, false otherwise.

◆ is_singular()

bool Astro::OrbitalElements::Keplerian::is_singular ( Real tol_i = EPSILON_LOW,
Real tol_e = EPSILON_LOW ) const
inline

Check if the keplerian orbit is singular, i.e., * \( i < \pi-\varepsilon_i \), \( i > \pi+\varepsilon_i\), or \( e \geq 1 - \varepsilon_e\).

Parameters
[in]tol_iTolerance \( \varepsilon_i \) for the singularity check on the inclination.
[in]tol_eTolerance \( \varepsilon_e \) for the singularity check on the eccentricity.
Returns
True if the keplerian orbit is singular, false otherwise.

◆ operator=() [1/2]

Keplerian & Astro::OrbitalElements::Keplerian::operator= ( const Keplerian & )
default

Enable the default Keplerian orbital elements assignment operator.

◆ operator=() [2/2]

Keplerian & Astro::OrbitalElements::Keplerian::operator= ( Keplerian && )
default

Enable the default Keplerian orbital elements move assignment operator.

◆ p()

Real Astro::OrbitalElements::Keplerian::p ( ) const
inline

Compute the semi-latus rectum \( p = a(1 - e^2) \) (UA).

Returns
The semi-latus rectum \( p \).

◆ reset()

void Astro::OrbitalElements::Keplerian::reset ( )
inline

Reset the Keplerian orbital elements to NaN.

◆ sanity_check()

bool Astro::OrbitalElements::Keplerian::sanity_check ( ) const
inline

Check if the keplerian orbital elements are valid, i.e., finite, and with \( e > 0 \), \( a > 0 \).

Parameters
[in]tol_iTolerance \( \varepsilon_i \) for the singularity check on the inclination.
[in]tol_eTolerance \( \varepsilon_e \) for the singularity check on the eccentricity.
Returns
True if the keplerian orbital elements are valid, false otherwise.

◆ u()

Real Astro::OrbitalElements::Keplerian::u ( ) const
inline

Compute the argument of latitude \( u = \omega + \Omega \).

Returns
The argument of latitude \( u \).

Member Data Documentation

◆ a

Real Astro::OrbitalElements::Keplerian::a {QUIET_NAN}

Semi-major axis \( a \) (UA).

◆ e

Real Astro::OrbitalElements::Keplerian::e {QUIET_NAN}

Eccentricity \( e \in [0, 1] \) (-).

◆ i

Real Astro::OrbitalElements::Keplerian::i {QUIET_NAN}

Inclination \( i \) (rad).

◆ Omega

Real Astro::OrbitalElements::Keplerian::Omega {QUIET_NAN}

Right ascension of the ascending node \( \Omega \) (rad).

◆ omega

Real Astro::OrbitalElements::Keplerian::omega {QUIET_NAN}

Argument of periapsis \( \omega \) (rad).


The documentation for this struct was generated from the following file: