AtmosphericDrag Class Reference
[GeoDynamics]

#include <AtmosphericDrag.hpp>

Inheritance diagram for AtmosphericDrag:

Inheritance graph
[legend]
Collaboration diagram for AtmosphericDrag:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class computes the acceleration due to drag on a satellite using an Earth atmosphere model that conforms to the computeDensity abstract method.

This Model is checked on Sep 28th,2009, OK!!!

Definition at line 54 of file AtmosphericDrag.hpp.

Public Member Functions

 AtmosphericDrag ()
 Default constructor.
virtual ~AtmosphericDrag ()
 Default destructor.
virtual double computeDensity (UTCTime t, EarthBody &rb, Vector< double > r, Vector< double > v)=0
 Abstract class requires the subclass to compute the atmospheric density.
virtual std::string modelName () const
 Return force model name.
virtual int forceIndex () const
 return the force model index
virtual void doCompute (UTCTime utc, EarthBody &rb, Spacecraft &sc)
 this is the real one
virtual void setSpaceData (double dayF107, double aveF107, double dayKp)

Protected Types

enum  CiraSize { CIRA_SIZE = 24 }

Protected Attributes

double dailyF107
double averageF107
double dailyKp
Vector< double > dadcd
 dadcd

Static Protected Attributes

const double rho_0 [CIRA_SIZE]
 CIRA Coefficients, this is used to calcute da_dr.
const double H [CIRA_SIZE]
const double h0 [CIRA_SIZE]


Member Enumeration Documentation

enum CiraSize [protected]
 

Enumeration values:
CIRA_SIZE 

Definition at line 99 of file AtmosphericDrag.hpp.


Constructor & Destructor Documentation

AtmosphericDrag  )  [inline]
 

Default constructor.

Definition at line 59 of file AtmosphericDrag.hpp.

virtual ~AtmosphericDrag  )  [inline, virtual]
 

Default destructor.

Definition at line 63 of file AtmosphericDrag.hpp.


Member Function Documentation

virtual double computeDensity UTCTime  t,
EarthBody rb,
Vector< double >  r,
Vector< double >  v
[pure virtual]
 

Abstract class requires the subclass to compute the atmospheric density.

Parameters:
ref EarthRef object.
r Position vector.
v Velocity vector
Returns:
Atmospheric density in kg/m^3

Implemented in CiraExponentialDrag, HarrisPriesterDrag, and Msise00Drag.

Referenced by AtmosphericDrag::doCompute().

void doCompute UTCTime  utc,
EarthBody rb,
Spacecraft sc
[virtual]
 

this is the real one

Reimplemented from ForceModel.

Definition at line 65 of file AtmosphericDrag.cpp.

References gpstk::beta(), AtmosphericDrag::computeDensity(), gpstk::cross(), ForceModel::da_dcd, AtmosphericDrag::dadcd, Position::getAltitude(), Spacecraft::getDragArea(), Spacecraft::getDragCoeff(), Spacecraft::getDryMass(), AtmosphericDrag::H, AtmosphericDrag::h0, gpstk::norm(), Spacecraft::R(), Matrix::resize(), gpstk::transpose(), and Spacecraft::V().

Referenced by HarrisPriesterDrag::test(), and CiraExponentialDrag::test().

virtual int forceIndex  )  const [inline, virtual]
 

return the force model index

Reimplemented from ForceModel.

Definition at line 80 of file AtmosphericDrag.hpp.

virtual std::string modelName  )  const [inline, virtual]
 

Return force model name.

Reimplemented from ForceModel.

Definition at line 76 of file AtmosphericDrag.hpp.

virtual void setSpaceData double  dayF107,
double  aveF107,
double  dayKp
[inline, virtual]
 

Definition at line 86 of file AtmosphericDrag.hpp.

Referenced by SatOrbit::createFMObjects().


Member Data Documentation

double averageF107 [protected]
 

Definition at line 92 of file AtmosphericDrag.hpp.

Vector<double> dadcd [protected]
 

dadcd

Definition at line 96 of file AtmosphericDrag.hpp.

Referenced by AtmosphericDrag::doCompute().

double dailyF107 [protected]
 

Definition at line 91 of file AtmosphericDrag.hpp.

double dailyKp [protected]
 

Definition at line 93 of file AtmosphericDrag.hpp.

const double H [static, protected]
 

Initial value:

 
   {
      8.382,   7.714,   6.549,   5.799,   5.382,   5.877,
      7.263,   9.473,   12.636,   16.149,   22.523,   29.740,
      37.105, 45.546, 53.628, 53.298, 58.515, 60.828,
      63.822, 71.835,   88.667, 124.64, 181.05, 268.0
   }

Definition at line 47 of file AtmosphericDrag.cpp.

Referenced by AtmosphericDrag::doCompute().

const double h0 [static, protected]
 

Initial value:

 
   {
      50,  60,  70,   80,    90, 100,
      110, 120, 130, 140, 150, 180,
      200, 250, 300, 350, 400, 450,
      500, 600, 700, 800, 900, 1000
   }

Definition at line 55 of file AtmosphericDrag.cpp.

Referenced by AtmosphericDrag::doCompute().

const double rho_0 [static, protected]
 

Initial value:

 
   {
      1.057E-03, 3.206E-04, 8.770E-05, 1.905E-05, 3.396E-06, 5.297E-07,
      9.661E-08, 2.438E-08, 8.484E-09, 3.845E-09, 2.070E-09, 5.464E-10,
      2.789E-10, 7.248E-11, 2.418E-11, 9.158E-12, 3.725E-12, 1.585E-12, 
      6.967E-13, 1.454E-13, 3.614E-14, 1.170E-14, 5.245E-15, 3.019E-15
   }
CIRA Coefficients, this is used to calcute da_dr.

Definition at line 39 of file AtmosphericDrag.cpp.


The documentation for this class was generated from the following files:
Generated on Wed Feb 8 03:31:26 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1