Tudat/External/SofaInterface/fundamentalArguments.cpp
//! Function to calculate the Doodson arguments at the requested time.

Function to calculate the Doodson arguments at the requested time.
Function to calculate the Doodson arguments at the requested time .
Eigen::Vector6d calculateDoodsonFundamentalArguments(
        const double tdbTime, const double terrestrialTime, const double universalTime1 )
{
    using mathematical_constants::PI;
    double julianCenturiesSinceJ2000 = basic_astrodynamics::convertSecondsSinceEpochToJulianCenturiesSinceEpoch( tdbTime );
    double greenwichMeanSiderealTime = iauGmst06(
                basic_astrodynamics::JULIAN_DAY_ON_J2000, universalTime1 / physical_constants::JULIAN_DAY,
                basic_astrodynamics::JULIAN_DAY_ON_J2000, terrestrialTime / physical_constants::JULIAN_DAY );
    double meanElongationOfMoonFromSun = calculateMeanElongationOfMoonFromSun( julianCenturiesSinceJ2000 );
    double meanArgumentOfLatitudeOfMoon = calculateMeanArgumentOfLatitudeOfMoon( julianCenturiesSinceJ2000 );
    double meanAnomalyOfMoon = calculateMeanAnomalyOfMoon( julianCenturiesSinceJ2000 );
    double meanAnomalyOfSun = calculateMeanAnomalyOfSun( julianCenturiesSinceJ2000 );
    double longitudeOfMoonsAscendingNode = calculateLongitudeOfMoonsAscendingNode( julianCenturiesSinceJ2000 );
    Eigen::Vector6d doodsonArguments;
    doodsonArguments( 1 ) = meanArgumentOfLatitudeOfMoon + longitudeOfMoonsAscendingNode;
    doodsonArguments( 0 ) = greenwichMeanSiderealTime + PI - doodsonArguments( 1 );
    doodsonArguments( 2 ) = doodsonArguments( 1 ) - meanElongationOfMoonFromSun;
    doodsonArguments( 3 ) = doodsonArguments( 1 ) - meanAnomalyOfMoon;
    doodsonArguments( 5 ) = doodsonArguments( 2 ) - meanAnomalyOfSun;
    doodsonArguments( 4 ) = -longitudeOfMoonsAscendingNode;
    return doodsonArguments;
}
Eigen :: Vector6d calculateDoodsonFundamentalArguments ( const double tdbTime , const double terrestrialTime , const double universalTime1 ) { using mathematical_constants :: PI ; double julianCenturiesSinceJ2000 = basic_astrodynamics :: convertSecondsSinceEpochToJulianCenturiesSinceEpoch ( tdbTime ) ; double greenwichMeanSiderealTime = iauGmst06 ( basic_astrodynamics :: JULIAN_DAY_ON_J2000 , universalTime1 / physical_constants :: JULIAN_DAY , basic_astrodynamics :: JULIAN_DAY_ON_J2000 , terrestrialTime / physical_constants :: JULIAN_DAY ) ; double meanElongationOfMoonFromSun = calculateMeanElongationOfMoonFromSun ( julianCenturiesSinceJ2000 ) ; double meanArgumentOfLatitudeOfMoon = calculateMeanArgumentOfLatitudeOfMoon ( julianCenturiesSinceJ2000 ) ; double meanAnomalyOfMoon = calculateMeanAnomalyOfMoon ( julianCenturiesSinceJ2000 ) ; double meanAnomalyOfSun = calculateMeanAnomalyOfSun ( julianCenturiesSinceJ2000 ) ; double longitudeOfMoonsAscendingNode = calculateLongitudeOfMoonsAscendingNode ( julianCenturiesSinceJ2000 ) ; Eigen :: Vector6d doodsonArguments ; doodsonArguments ( 1 ) = meanArgumentOfLatitudeOfMoon + longitudeOfMoonsAscendingNode ; doodsonArguments ( 0 ) = greenwichMeanSiderealTime + PI - doodsonArguments ( 1 ) ; doodsonArguments ( 2 ) = doodsonArguments ( 1 ) - meanElongationOfMoonFromSun ; doodsonArguments ( 3 ) = doodsonArguments ( 1 ) - meanAnomalyOfMoon ; doodsonArguments ( 5 ) = doodsonArguments ( 2 ) - meanAnomalyOfSun ; doodsonArguments ( 4 ) = - longitudeOfMoonsAscendingNode ; return doodsonArguments ; }
Function to calculate the Doodson arguments at the requested time.
Function to calculate the Doodson arguments at the requested time .
// Calculate current centuries since J2000.
 // Calculate GMST
 // Calculate relevant angles.
 // Calculate Doodson arguments.
