Tudat/Astrodynamics/Propagators/nBodyGaussKeplerStateDerivative.cpp
//! Function to evaluate the Gauss planetary equations for Kepler elements

Function to evaluate the Gauss planetary equations for Kepler elements
Function to evaluate the Gauss planetary equations for Kepler elements
Eigen::Vector6d computeGaussPlanetaryEquationsForKeplerElements(
        const Eigen::Vector6d& currentOsculatingKeplerElements,
        const Eigen::Vector3d& accelerationsInRswFrame,
        const double centralBodyGravitationalParameter )
{
    double semiLatusRectum =  orbital_element_conversions::computeSemiLatusRectum(
                currentOsculatingKeplerElements( 1 ),
                currentOsculatingKeplerElements( 0 ),
                std::numeric_limits< double >::epsilon( ) );
    double orbitalAngularMomentum = orbital_element_conversions::computeOrbitalAngularMomentumPerUnitMass(
                semiLatusRectum, centralBodyGravitationalParameter );
    double meanMotion = basic_astrodynamics::computeKeplerMeanMotion(
                currentOsculatingKeplerElements( 0 ), centralBodyGravitationalParameter );
    double distance = semiLatusRectum /
            ( 1.0 + currentOsculatingKeplerElements( 1 ) * std::cos( currentOsculatingKeplerElements( 5 ) ) );
    return computeGaussPlanetaryEquationsForKeplerElements(
                currentOsculatingKeplerElements, accelerationsInRswFrame, semiLatusRectum, distance, meanMotion,
                orbitalAngularMomentum );
}
Eigen :: Vector6d computeGaussPlanetaryEquationsForKeplerElements ( const Eigen :: Vector6d & currentOsculatingKeplerElements , const Eigen :: Vector3d & accelerationsInRswFrame , const double centralBodyGravitationalParameter ) { double semiLatusRectum = orbital_element_conversions :: computeSemiLatusRectum ( currentOsculatingKeplerElements ( 1 ) , currentOsculatingKeplerElements ( 0 ) , std :: numeric_limits < double > :: epsilon ( ) ) ; double orbitalAngularMomentum = orbital_element_conversions :: computeOrbitalAngularMomentumPerUnitMass ( semiLatusRectum , centralBodyGravitationalParameter ) ; double meanMotion = basic_astrodynamics :: computeKeplerMeanMotion ( currentOsculatingKeplerElements ( 0 ) , centralBodyGravitationalParameter ) ; double distance = semiLatusRectum / ( 1.0 + currentOsculatingKeplerElements ( 1 ) * std :: cos ( currentOsculatingKeplerElements ( 5 ) ) ) ; return computeGaussPlanetaryEquationsForKeplerElements ( currentOsculatingKeplerElements , accelerationsInRswFrame , semiLatusRectum , distance , meanMotion , orbitalAngularMomentum ) ; }
Function to evaluate the Gauss planetary equations for Kepler elements
Function to evaluate the Gauss planetary equations for Kepler elements
// Compute orbit properties
 // Evaluate Gauss equations
