WSF
WsfNORAD_OrbitalPropagator Class Reference

#include <WsfNORAD_OrbitalPropagator.hpp>

Inheritance diagram for WsfNORAD_OrbitalPropagator:
Collaboration diagram for WsfNORAD_OrbitalPropagator:

Public Member Functions

 WsfNORAD_OrbitalPropagator ()
 WsfNORAD_OrbitalPropagator (const WsfNORAD_OrbitalPropagator &aSrc)
WsfNORAD_OrbitalPropagatoroperator= (const WsfNORAD_OrbitalPropagator &)=delete
 ~WsfNORAD_OrbitalPropagator () override=default
WsfNORAD_OrbitalPropagatorClone () const override
Public Member Functions inherited from WsfNonClassicalOrbitalPropagator
 WsfNonClassicalOrbitalPropagator (std::unique_ptr< ut::OrbitalState > aInitialOrbitalStatePtr)
 WsfNonClassicalOrbitalPropagator (const WsfNonClassicalOrbitalPropagator &aOther)=default
 ~WsfNonClassicalOrbitalPropagator () override=default
WsfNonClassicalOrbitalPropagatoroperator= (const WsfNonClassicalOrbitalPropagator &aOther)=delete
std::unique_ptr< UtOrbitalPropagatorBase > GetManeuveringPropagator () const override
UtLambertProblem::Result SolveLambertProblem (const ut::CentralBody &aCentralBody, const UtVec3d &aLocationECI_1, const UtVec3d &aLocationECI_2, double aDt, bool aShortWay, bool aAllowHitsEarth, double aConvergenceTolerance=1.0e-12) const override
Public Member Functions inherited from wsf::space::OrbitalPropagator
 OrbitalPropagator (std::unique_ptr< ut::OrbitalState > aInitialOrbitalState)
 OrbitalPropagator (const OrbitalPropagator &aOther)
 ~OrbitalPropagator () override=default
OrbitalPropagatoroperator= (const OrbitalPropagator &aOther)=delete
WsfSpaceMoverBaseGetSpaceMover () const
virtual void SetSpaceMover (WsfSpaceMoverBase *aMoverPtr)

Static Public Member Functions

static WsfOrbitalPropagatorTypes::FactoryPtr ObjectFactory (WsfScenario &aScenario)

Common framework methods.

enum  EphemerisType {
  cSGP = 0 , cSGP4 = 1 , cSGP8 = 2 , cSDP4 = 3 ,
  cSDP8 = 4
}
bool Initialize (const UtCalendar &aInitialTime) override
int GetEphemerisType () const
double GetTimeToNorthernIntersection (double aTargetRAAN, double aTargetInclination, unsigned aOrbitNum=0) const override
double GetTimeToSouthernIntersection (double aTargetRAAN, double aTargetInclination, unsigned aOrbitNum=0) const override
bool SetInitialOrbitalState (const ut::OrbitalState &aState) override
void Propagate (const UtCalendar &aTime) override
void UpdateOrbitalState () override
bool HyperbolicPropagationAllowed () const override
void PostPropagate () override

Detailed Description

WsfNORAD_OrbitalPropagator is a specialization of WsfMover for earth-orbiting satellites.

This mover incorporates the SG* and SD* propagators for "near-earth" (orbits > 6.4 revs / day) and "deep-space" (orbits < 6.4 revs / day) satellites. These are published in the "SpaceTrack 3" report: http://celestrak.com/NORAD/documentation/spacetrk.pdf. They take into account perturbation effects from the sun and moon. This code is based upon a public domain c-based adaptation of the algorithms. This adaptation can be found at http://www.projectpluto.com/sat_code.htm .

Member Enumeration Documentation

◆ EphemerisType

Enumerator
cSGP 
cSGP4 
cSGP8 
cSDP4 
cSDP8 

Constructor & Destructor Documentation

◆ WsfNORAD_OrbitalPropagator() [1/2]

WsfNORAD_OrbitalPropagator::WsfNORAD_OrbitalPropagator ( )

◆ WsfNORAD_OrbitalPropagator() [2/2]

WsfNORAD_OrbitalPropagator::WsfNORAD_OrbitalPropagator ( const WsfNORAD_OrbitalPropagator & aSrc)

◆ ~WsfNORAD_OrbitalPropagator()

WsfNORAD_OrbitalPropagator::~WsfNORAD_OrbitalPropagator ( )
overridedefault

Member Function Documentation

◆ Clone()

WsfNORAD_OrbitalPropagator * WsfNORAD_OrbitalPropagator::Clone ( ) const
inlineoverride

◆ GetEphemerisType()

int WsfNORAD_OrbitalPropagator::GetEphemerisType ( ) const
inline

Get the ephemeris type. The return value corresponds with the above enumeration for ephemeris type.

◆ GetTimeToNorthernIntersection()

double WsfNORAD_OrbitalPropagator::GetTimeToNorthernIntersection ( double aTargetRAAN,
double aTargetInclination,
unsigned aOrbitNum = 0 ) const
override

◆ GetTimeToSouthernIntersection()

double WsfNORAD_OrbitalPropagator::GetTimeToSouthernIntersection ( double aTargetRAAN,
double aTargetInclination,
unsigned aOrbitNum = 0 ) const
override

◆ HyperbolicPropagationAllowed()

bool WsfNORAD_OrbitalPropagator::HyperbolicPropagationAllowed ( ) const
inlineoverrideprotected

◆ Initialize()

bool WsfNORAD_OrbitalPropagator::Initialize ( const UtCalendar & aInitialTime)
override

References ok.

◆ ObjectFactory()

WsfOrbitalPropagatorTypes::FactoryPtr WsfNORAD_OrbitalPropagator::ObjectFactory ( WsfScenario & aScenario)
static

◆ operator=()

WsfNORAD_OrbitalPropagator & WsfNORAD_OrbitalPropagator::operator= ( const WsfNORAD_OrbitalPropagator & )
delete

◆ PostPropagate()

void WsfNORAD_OrbitalPropagator::PostPropagate ( )
overrideprotected

◆ Propagate()

void WsfNORAD_OrbitalPropagator::Propagate ( const UtCalendar & aTime)
overrideprotected

◆ SetInitialOrbitalState()

bool WsfNORAD_OrbitalPropagator::SetInitialOrbitalState ( const ut::OrbitalState & aState)
override

◆ UpdateOrbitalState()

void WsfNORAD_OrbitalPropagator::UpdateOrbitalState ( )
overrideprotected

The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved