SatOrbit Class Reference
[GeoDynamics]

#include <SatOrbit.hpp>

Inheritance diagram for SatOrbit:

Inheritance graph
[legend]
Collaboration diagram for SatOrbit:

Collaboration graph
[legend]
List of all members.

Detailed Description

This Class handle general orbit for different satellite orbit type.

Definition at line 56 of file SatOrbit.hpp.

Public Types

enum  GravityModel { GM_JGM3, GM_EGM96 }
 Valid gravity models. More...
enum  AtmosphericModel { AM_HarrisPriester, AM_MSISE00, AM_CIRA }
 Valid atmospheric models. More...

Public Member Functions

 SatOrbit ()
 Default constructor.
virtual ~SatOrbit ()
 Default destructor.
virtual Vector< double > getDerivatives (const double &t, const Vector< double > &y)
 Compute the derivatives.
SatOrbitreset ()
 Restore the default setting.
SatOrbitsetRefEpoch (UTCTime utc)
 set reference epoch
UTCTime getRefEpoch () const
 get reference epoch
SatOrbitsetSpacecraftData (std::string name="sc-test01", const double &mass=1000.0, const double &area=20.0, const double &areaSRP=20.0, const double &Cr=1.0, const double &Cd=2.2)
 set spacecraft physical parameters
SatOrbitsetSpaceData (double dayF107=150.0, double aveF107=150.0, double dayKp=3.0)
 set space data
SatOrbitenableGeopotential (SatOrbit::GravityModel model=SatOrbit::GM_JGM3, const int &maxDegree=1, const int &maxOrder=1, const bool &solidTide=false, const bool &oceanTide=false, const bool &poleTide=false)
SatOrbitenableThirdBodyPerturbation (const bool &bsun=false, const bool &bmoon=false)
SatOrbitenableAtmosphericDrag (SatOrbit::AtmosphericModel model=SatOrbit::AM_HarrisPriester, const bool &bdrag=false)
SatOrbitenableSolarRadiationPressure (bool bsrp=false)
SatOrbitenableRelativeEffect (const bool &brel=false)
void setForceModelType (std::set< ForceModel::ForceModelType > fmt)
 For POD , and it's will be improved later.

Protected Member Functions

virtual void init ()
void createFMObjects (FMCData &fmc)
void deleteFMObjects (FMCData &fmc)
void addForce (ForceModel *pForce)
 Adds a generic force to the list.

Protected Attributes

UTCTime utc0
 Reference epoch.
Spacecraft sc
 Spacecraft object.
EarthBody earthBody
 Earth Body.
FMCData forceConfig
 Object holding force model consiguration.
bool fmlPrepared
 Flag indicate if the ForceModelList has been prepared 'forceConfig' can't be change when 'fmlPrepared' is true.
ForceModelList forceList
 Force Model List.


Member Enumeration Documentation

enum AtmosphericModel
 

Valid atmospheric models.

Enumeration values:
AM_HarrisPriester 
AM_MSISE00 
AM_CIRA 

Definition at line 67 of file SatOrbit.hpp.

enum GravityModel
 

Valid gravity models.

Enumeration values:
GM_JGM3 
GM_EGM96 

Definition at line 60 of file SatOrbit.hpp.


Constructor & Destructor Documentation

SatOrbit  )  [inline]
 

Default constructor.

Definition at line 145 of file SatOrbit.hpp.

virtual ~SatOrbit  )  [inline, virtual]
 

Default destructor.

Definition at line 149 of file SatOrbit.hpp.


Member Function Documentation

void addForce ForceModel pForce  )  [inline, protected]
 

Adds a generic force to the list.

Definition at line 224 of file SatOrbit.hpp.

void createFMObjects FMCData fmc  )  [protected]
 

Definition at line 175 of file SatOrbit.cpp.

References ForceModelList::addForce(), SatOrbit::FMCData::atmDrag, SatOrbit::FMCData::atmModel, SatOrbit::FMCData::averageF107, ForceModelList::clear(), SatOrbit::FMCData::dailyF107, SatOrbit::FMCData::dailyKp, SatOrbit::deleteFMObjects(), SphericalHarmonicGravity::enableOceanTide(), SphericalHarmonicGravity::enablePoleTide(), SphericalHarmonicGravity::enableSolidTide(), SatOrbit::fmlPrepared, SatOrbit::forceList, SatOrbit::FMCData::geoEarth, SatOrbit::FMCData::geoMoon, SatOrbit::FMCData::geoSun, GPSTK_THROW, SatOrbit::FMCData::grvDegree, SatOrbit::FMCData::grvModel, SatOrbit::FMCData::grvOrder, SatOrbit::FMCData::oceanTide, SatOrbit::FMCData::pAtmDrag, SatOrbit::FMCData::pGeoEarth, SatOrbit::FMCData::pGeoMoon, SatOrbit::FMCData::pGeoSun, SatOrbit::FMCData::poleTide, SatOrbit::FMCData::pRelEffect, SatOrbit::FMCData::pSolarPressure, SatOrbit::FMCData::relEffect, SphericalHarmonicGravity::setDesiredDegree(), AtmosphericDrag::setSpaceData(), SatOrbit::FMCData::solarPressure, and SatOrbit::FMCData::solidTide.

Referenced by SatOrbit::getDerivatives().

void deleteFMObjects FMCData fmc  )  [protected]
 

Definition at line 261 of file SatOrbit.cpp.

References SatOrbit::FMCData::atmModel, SatOrbit::fmlPrepared, SatOrbit::FMCData::grvModel, SatOrbit::FMCData::pAtmDrag, SatOrbit::FMCData::pGeoEarth, SatOrbit::FMCData::pGeoMoon, SatOrbit::FMCData::pGeoSun, SatOrbit::FMCData::pRelEffect, and SatOrbit::FMCData::pSolarPressure.

Referenced by SatOrbit::createFMObjects().

SatOrbit & enableAtmosphericDrag SatOrbit::AtmosphericModel  model = SatOrbit::AM_HarrisPriester,
const bool &  bdrag = false
 

Definition at line 138 of file SatOrbit.cpp.

References SatOrbit::FMCData::atmDrag, SatOrbit::FMCData::atmModel, and SatOrbit::forceConfig.

Referenced by SatOrbit::init().

SatOrbit & enableGeopotential SatOrbit::GravityModel  model = SatOrbit::GM_JGM3,
const int &  maxDegree = 1,
const int &  maxOrder = 1,
const bool &  solidTide = false,
const bool &  oceanTide = false,
const bool &  poleTide = false
 

Definition at line 99 of file SatOrbit.cpp.

References SatOrbit::forceConfig, SatOrbit::FMCData::geoEarth, SatOrbit::FMCData::grvDegree, SatOrbit::FMCData::grvModel, SatOrbit::FMCData::grvOrder, SatOrbit::FMCData::oceanTide, SatOrbit::FMCData::poleTide, and SatOrbit::FMCData::solidTide.

Referenced by SatOrbit::init(), and SatOrbitPropagator::test().

SatOrbit & enableRelativeEffect const bool &  brel = false  ) 
 

Definition at line 164 of file SatOrbit.cpp.

References SatOrbit::forceConfig, and SatOrbit::FMCData::relEffect.

Referenced by SatOrbit::init().

SatOrbit & enableSolarRadiationPressure bool  bsrp = false  ) 
 

Definition at line 152 of file SatOrbit.cpp.

References SatOrbit::forceConfig, and SatOrbit::FMCData::solarPressure.

Referenced by SatOrbit::init().

SatOrbit & enableThirdBodyPerturbation const bool &  bsun = false,
const bool &  bmoon = false
 

Definition at line 124 of file SatOrbit.cpp.

References SatOrbit::forceConfig, SatOrbit::FMCData::geoMoon, and SatOrbit::FMCData::geoSun.

Referenced by SatOrbit::init().

Vector< double > getDerivatives const double &  t,
const Vector< double > &  y
[virtual]
 

Compute the derivatives.

t time or the independent variable. y the required data.

Returns:
the derivatives.

Implements EquationOfMotion.

Reimplemented in LEOSatOrbit, and NavSatOrbit.

Definition at line 41 of file SatOrbit.cpp.

References SatOrbit::createFMObjects(), SatOrbit::earthBody, SatOrbit::fmlPrepared, SatOrbit::forceConfig, SatOrbit::forceList, ForceModelList::getDerivatives(), SatOrbit::sc, and Spacecraft::setStateVector().

UTCTime getRefEpoch  )  const [inline]
 

get reference epoch

Definition at line 165 of file SatOrbit.hpp.

Referenced by SatOrbitPropagator::getCurTime(), and SatOrbitPropagator::writeToFile().

void init  )  [protected, virtual]
 

Definition at line 57 of file SatOrbit.cpp.

References SatOrbit::AM_HarrisPriester, SatOrbit::enableAtmosphericDrag(), SatOrbit::enableGeopotential(), SatOrbit::enableRelativeEffect(), SatOrbit::enableSolarRadiationPressure(), SatOrbit::enableThirdBodyPerturbation(), SatOrbit::GM_JGM3, and SatOrbit::setSpacecraftData().

SatOrbit& reset  )  [inline]
 

Restore the default setting.

Definition at line 157 of file SatOrbit.hpp.

void setForceModelType std::set< ForceModel::ForceModelType fmt  )  [inline]
 

For POD , and it's will be improved later.

Definition at line 209 of file SatOrbit.hpp.

Referenced by SatOrbitPropagator::SatOrbitPropagator().

SatOrbit& setRefEpoch UTCTime  utc  )  [inline]
 

set reference epoch

Definition at line 161 of file SatOrbit.hpp.

SatOrbit & setSpacecraftData std::string  name = "sc-test01",
const double &  mass = 1000.0,
const double &  area = 20.0,
const double &  areaSRP = 20.0,
const double &  Cr = 1.0,
const double &  Cd = 2.2
 

set spacecraft physical parameters

Definition at line 70 of file SatOrbit.cpp.

References SatOrbit::sc, Spacecraft::setDragArea(), Spacecraft::setDragCoeff(), Spacecraft::setDryMass(), Spacecraft::setName(), Spacecraft::setReflectCoeff(), and Spacecraft::setSRPArea().

Referenced by SatOrbit::init().

SatOrbit & setSpaceData double  dayF107 = 150.0,
double  aveF107 = 150.0,
double  dayKp = 3.0
 

set space data

Definition at line 88 of file SatOrbit.cpp.

References SatOrbit::FMCData::averageF107, SatOrbit::FMCData::dailyF107, SatOrbit::FMCData::dailyKp, and SatOrbit::forceConfig.


Member Data Documentation

EarthBody earthBody [protected]
 

Earth Body.

Definition at line 234 of file SatOrbit.hpp.

Referenced by SatOrbit::getDerivatives().

bool fmlPrepared [protected]
 

Flag indicate if the ForceModelList has been prepared 'forceConfig' can't be change when 'fmlPrepared' is true.

Definition at line 241 of file SatOrbit.hpp.

Referenced by SatOrbit::createFMObjects(), SatOrbit::deleteFMObjects(), and SatOrbit::getDerivatives().

FMCData forceConfig [protected]
 

Object holding force model consiguration.

Definition at line 237 of file SatOrbit.hpp.

Referenced by SatOrbit::enableAtmosphericDrag(), SatOrbit::enableGeopotential(), SatOrbit::enableRelativeEffect(), SatOrbit::enableSolarRadiationPressure(), SatOrbit::enableThirdBodyPerturbation(), SatOrbit::getDerivatives(), and SatOrbit::setSpaceData().

ForceModelList forceList [protected]
 

Force Model List.

Definition at line 244 of file SatOrbit.hpp.

Referenced by SatOrbit::createFMObjects(), and SatOrbit::getDerivatives().

Spacecraft sc [protected]
 

Spacecraft object.

Definition at line 231 of file SatOrbit.hpp.

Referenced by SatOrbit::getDerivatives(), and SatOrbit::setSpacecraftData().

UTCTime utc0 [protected]
 

Reference epoch.

Definition at line 228 of file SatOrbit.hpp.


The documentation for this class was generated from the following files:
Generated on Thu May 23 03:31:38 2013 for GPS ToolKit Software Library by  doxygen 1.3.9.1