Processing math: 100%
Astro  0.0.0
A C++ library for space dynamics
All Classes Namespaces Files Functions Variables Typedefs Macros Pages
Astro::OrbitalElements::Equinoctial Struct Reference

Struct container for the (modified) equinoctial orbital elements. More...

#include <OrbitalElements.hxx>

Public Member Functions

 Equinoctial ()
 
 Equinoctial (Real t_p, Real t_f, Real t_g, Real t_h, Real t_k)
 
 Equinoctial (Equinoctial const &)=default
 
 Equinoctial (Equinoctial &&)=default
 
Equinoctialoperator= (const Equinoctial &)=default
 
Equinoctialoperator= (Equinoctial &&)=default
 
std::string info () const
 
void info (std::ostream &os)
 
void reset ()
 
bool sanity_check () const
 
bool is_singular (Real tol_i=EPSILON_LOW) const
 
bool is_nonsingular (Real tol_i=EPSILON_LOW) const
 
Real u (Real L) const
 
Real a () const
 
Real e () const
 
Real i () const
 
Real omega () const
 
Real Omega () const
 

Public Attributes

Real p {QUIET_NAN}
 
Real f {QUIET_NAN}
 
Real g {QUIET_NAN}
 
Real h {QUIET_NAN}
 
Real k {QUIET_NAN}
 

Detailed Description

The (modified) equinoctial orbital elements are defined as follows:

  • the semi-latus rectum p (UA).
  • the x -axis component of the eccentricity vector in the orbital frame f (-).
  • the y -axis component of the eccentricity vector in the orbital frame g (-).
  • the x -axis component of the node vector in the orbital frame h (-).
  • the y -axis component of the node vector in the orbital frame k (-).
  • the posigrade (+1)/retrograde (-1) factor I = +1 (posigrade) or I = -1 (retrograde) (-). Singular at i = \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

◆ Equinoctial() [1/4]

Astro::OrbitalElements::Equinoctial::Equinoctial ( )
inline

Struct constructor for the (modified) equinoctial orbit parameters.

◆ Equinoctial() [2/4]

Astro::OrbitalElements::Equinoctial::Equinoctial ( Real t_p,
Real t_f,
Real t_g,
Real t_h,
Real t_k )
inline

Struct constructor for the (modified) equinoctial orbit parameters.

Parameters
[in]t_pThe semi-latus rectum p .
[in]t_fThe x -axis component of the eccentricity vector in the orbital frame.
[in]t_gThe y -axis component of the eccentricity vector in the orbital frame.
[in]t_hThe x -axis component of the node vector in the orbital frame.
[in]t_kThe y -axis component of the node vector in the orbital frame.

◆ Equinoctial() [3/4]

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

Enable the default equinoctial orbit parameters copy constructor.

◆ Equinoctial() [4/4]

Astro::OrbitalElements::Equinoctial::Equinoctial ( Equinoctial && )
default

Enable the default equinoctial orbit parameters move constructor.

Member Function Documentation

◆ a()

Real Astro::OrbitalElements::Equinoctial::a ( ) const
inline

Compute the semi-major axis a = \displaystyle\frac{p}{1 - f^2 - g^2} (UA).

Returns
The semi-major axis a .

◆ e()

Real Astro::OrbitalElements::Equinoctial::e ( ) const
inline

Compute the eccentricity \mathbf{e} = [f, g, 0]^\top (-).

Returns
The eccentricity \mathbf{e} .

◆ i()

Real Astro::OrbitalElements::Equinoctial::i ( ) const
inline

Compute the inclination i = \arctan\left(2\sqrt{h^2 + k^2}, 1 - h^2 - k^2\right) (rad).

Returns
The inclination i .

◆ info() [1/2]

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

Print the equinoctial orbit parameters on a string.

Returns
Equinoctial orbit parameters string.

◆ info() [2/2]

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

Print the equinoctial orbit parameters on a stream.

Parameters
[in,out]osOutput stream.

◆ is_nonsingular()

bool Astro::OrbitalElements::Equinoctial::is_nonsingular ( Real tol_i = EPSILON_LOW) const
inline

Check if the equinoctial orbit is singular, i.e., * \pi-\varepsilon_i < i < \pi+\varepsilon_i.

Parameters
[in]tol_iTolerance \varepsilon_i for the singularity check on the inclination.
Returns
True if the equinoctial orbit is nonsingular, false otherwise.

◆ is_singular()

bool Astro::OrbitalElements::Equinoctial::is_singular ( Real tol_i = EPSILON_LOW) const
inline

Check if the equinoctial orbit is singular, i.e., * i < \pi-\varepsilon_i , or i > \pi+\varepsilon_i.

Parameters
[in]tol_iTolerance \varepsilon_i for the singularity check on the inclination.
Returns
True if the equinoctial orbit is singular, false otherwise.

◆ Omega()

Real Astro::OrbitalElements::Equinoctial::Omega ( ) const
inline

Compute the right ascension of the ascending node \Omega = \arctan\left(k, h\right) (rad).

Returns
The right ascension of the ascending node \Omega .

◆ omega()

Real Astro::OrbitalElements::Equinoctial::omega ( ) const
inline

Compute the argument of periapsis \omega = \arctan\left(gh - fk, fh + gk\right) (rad).

Returns
The argument of periapsis \omega .

◆ operator=() [1/2]

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

Enable the default equinoctial orbit parameters assignment operator.

◆ operator=() [2/2]

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

Enable the default equinoctial orbit parameters move assignment operator.

◆ reset()

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

Reset the equinoctial orbit parameters to NaN.

◆ sanity_check()

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

Check if the equinoctial orbit parameters are valid, i.e., finite, and with p > 0 .

Returns
True if the equinoctial orbit parameters are valid, false otherwise.

◆ u()

Real Astro::OrbitalElements::Equinoctial::u ( Real L) const
inline

Compute the argument of latitude u = \omega + \Omega = \arctan\left(h\sin(L) - k\cos(L), h\cos(L) + k\sin(L)\right) .

Parameters
[in]LThe true longitude L .
Returns
The argument of latitude u .

Member Data Documentation

◆ f

Real Astro::OrbitalElements::Equinoctial::f {QUIET_NAN}

X -axis component of the eccentricity vector in the orbital frame (-).

◆ g

Real Astro::OrbitalElements::Equinoctial::g {QUIET_NAN}

Y -axis component of the eccentricity vector in the orbital frame (-).

◆ h

Real Astro::OrbitalElements::Equinoctial::h {QUIET_NAN}

X -axis component of the node vector in the orbital frame (-).

◆ k

Real Astro::OrbitalElements::Equinoctial::k {QUIET_NAN}

Y -axis component of the node vector in the orbital frame (-).

◆ p

Real Astro::OrbitalElements::Equinoctial::p {QUIET_NAN}

Semi-latus rectum p (UA).


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