SphericalHarmonicGravity Class Reference
[GeoDynamics]

#include <SphericalHarmonicGravity.hpp>

Inheritance diagram for SphericalHarmonicGravity:

Inheritance graph
[legend]
Collaboration diagram for SphericalHarmonicGravity:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class computes the body fixed acceleration due to the harmonic gravity field of the central body.

Definition at line 51 of file SphericalHarmonicGravity.hpp.

Public Member Functions

 SphericalHarmonicGravity (int n, int m)
 Constructor.
virtual ~SphericalHarmonicGravity ()
 Default destructor.
virtual void initialize ()=0
 We declare a pure virtual function.
Vector< double > gravity (Vector< double > r, Matrix< double > E)
 Computes the acceleration due to gravity in m/s^2.
Matrix< double > gravityGradient (Vector< double > r, Matrix< double > E)
 Computes the partial derivative of gravity with respect to position.
virtual void doCompute (UTCTime utc, EarthBody &rb, Spacecraft &sc)
 Call the relevant methods to compute the acceleration.
SphericalHarmonicGravitysetDesiredDegree (const int &n, const int &m)
SphericalHarmonicGravityenableSolidTide (bool b=true)
 Methods to enable earth tide correction.
SphericalHarmonicGravityenableOceanTide (bool b=true)
SphericalHarmonicGravityenablePoleTide (bool b=true)
virtual std::string modelName () const
 Return force model name.
virtual int forceIndex () const
 return the force model index
virtual void test ()

Protected Member Functions

void computeVW (Vector< double > r, Matrix< double > E)
 Evaluates the two harmonic functions V and W.
void correctCSTides (UTCTime t, bool solidFlag=false, bool oceanFlag=false, bool poleFlag=false)
 Add tides to coefficients.
double normFactor (int n, int m)
 normalized coefficient

Protected Attributes

gpstk::SphericalHarmonicGravity::GravityModelData gmData
Matrix< double > V
 V W (nmax+3)*(nmax+3) Harmonic function V and W.
Matrix< double > W
 V W (nmax+3)*(nmax+3) Harmonic function V and W.
int desiredDegree
 Degree and Order of gravity model desired.
int desiredOrder
 Degree and Order of gravity model desired.
bool correctSolidTide
 Flags to indicate earth tides correction.
bool correctPoleTide
bool correctOceanTide
EarthSolidTide solidTide
 Objects to do earth tides correction.
EarthPoleTide poleTide
EarthOceanTide oceanTide


Constructor & Destructor Documentation

SphericalHarmonicGravity int  n,
int  m
 

Constructor.

Parameters:
n Desired degree.
m Desired order.

Definition at line 45 of file SphericalHarmonicGravity.cpp.

References Matrix::resize(), SphericalHarmonicGravity::V, and SphericalHarmonicGravity::W.

virtual ~SphericalHarmonicGravity  )  [inline, virtual]
 

Default destructor.

Definition at line 63 of file SphericalHarmonicGravity.hpp.


Member Function Documentation

void computeVW Vector< double >  r,
Matrix< double >  E
[protected]
 

Evaluates the two harmonic functions V and W.

Parameters:
r ECI position vector.
E ECI to ECEF transformation matrix.

Definition at line 66 of file SphericalHarmonicGravity.cpp.

References Matrix::cols(), SphericalHarmonicGravity::desiredDegree, SphericalHarmonicGravity::desiredOrder, gpstk::dot(), SphericalHarmonicGravity::gmData, GPSTK_THROW, SphericalHarmonicGravity::GravityModelData::refDistance, Matrix::rows(), Vector::size(), gpstk::sqrt(), SphericalHarmonicGravity::V, and SphericalHarmonicGravity::W.

Referenced by SphericalHarmonicGravity::doCompute(), and SphericalHarmonicGravity::test().

void correctCSTides UTCTime  t,
bool  solidFlag = false,
bool  oceanFlag = false,
bool  poleFlag = false
[protected]
 

Add tides to coefficients.

s

s

Definition at line 356 of file SphericalHarmonicGravity.cpp.

References SphericalHarmonicGravity::GravityModelData::dotC20, SphericalHarmonicGravity::GravityModelData::dotC21, SphericalHarmonicGravity::GravityModelData::dotS21, EarthOceanTide::getOceanTide(), EarthPoleTide::getPoleTide(), EarthSolidTide::getSolidTide(), SphericalHarmonicGravity::gmData, UTCTime::mjdUTC(), SphericalHarmonicGravity::normFactor(), SphericalHarmonicGravity::oceanTide, SphericalHarmonicGravity::poleTide, SphericalHarmonicGravity::GravityModelData::refMJD, Matrix::rows(), SphericalHarmonicGravity::solidTide, and SphericalHarmonicGravity::GravityModelData::unnormalizedCS.

Referenced by SphericalHarmonicGravity::doCompute().

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

Call the relevant methods to compute the acceleration.

Parameters:
utc Time reference class
rb Reference body class
sc Spacecraft parameters and state
Returns:
the acceleration [m/s^s]

Reimplemented from ForceModel.

Definition at line 313 of file SphericalHarmonicGravity.cpp.

References SphericalHarmonicGravity::computeVW(), SphericalHarmonicGravity::correctCSTides(), SphericalHarmonicGravity::correctOceanTide, SphericalHarmonicGravity::correctPoleTide, SphericalHarmonicGravity::correctSolidTide, SphericalHarmonicGravity::gravity(), SphericalHarmonicGravity::gravityGradient(), gpstk::J2kToECEFMatrix(), Spacecraft::R(), and Matrix::resize().

SphericalHarmonicGravity& enableOceanTide bool  b = true  )  [inline]
 

Definition at line 104 of file SphericalHarmonicGravity.hpp.

Referenced by SatOrbit::createFMObjects().

SphericalHarmonicGravity& enablePoleTide bool  b = true  )  [inline]
 

Definition at line 107 of file SphericalHarmonicGravity.hpp.

Referenced by SatOrbit::createFMObjects().

SphericalHarmonicGravity& enableSolidTide bool  b = true  )  [inline]
 

Methods to enable earth tide correction.

Definition at line 101 of file SphericalHarmonicGravity.hpp.

Referenced by SatOrbit::createFMObjects().

virtual int forceIndex  )  const [inline, virtual]
 

return the force model index

Reimplemented from ForceModel.

Definition at line 115 of file SphericalHarmonicGravity.hpp.

Vector< double > gravity Vector< double >  r,
Matrix< double >  E
 

Computes the acceleration due to gravity in m/s^2.

Parameters:
r ECI position vector.
E ECI to ECEF transformation matrix.
Returns:
ECI acceleration in m/s^2.

Definition at line 142 of file SphericalHarmonicGravity.cpp.

References Matrix::cols(), SphericalHarmonicGravity::GravityModelData::GM, SphericalHarmonicGravity::gmData, GPSTK_THROW, SphericalHarmonicGravity::GravityModelData::refDistance, Matrix::rows(), Vector::size(), gpstk::transpose(), SphericalHarmonicGravity::GravityModelData::unnormalizedCS, SphericalHarmonicGravity::V, and SphericalHarmonicGravity::W.

Referenced by SphericalHarmonicGravity::doCompute(), and SphericalHarmonicGravity::test().

Matrix< double > gravityGradient Vector< double >  r,
Matrix< double >  E
 

Computes the partial derivative of gravity with respect to position.

Returns:
ECI gravity gradient matrix.
Parameters:
r ECI position vector.
E ECI to ECEF transformation matrix.

Definition at line 207 of file SphericalHarmonicGravity.cpp.

References Matrix::cols(), SphericalHarmonicGravity::GravityModelData::GM, SphericalHarmonicGravity::gmData, GPSTK_THROW, SphericalHarmonicGravity::GravityModelData::refDistance, Matrix::rows(), Vector::size(), gpstk::transpose(), SphericalHarmonicGravity::GravityModelData::unnormalizedCS, SphericalHarmonicGravity::V, and SphericalHarmonicGravity::W.

Referenced by SphericalHarmonicGravity::doCompute(), and SphericalHarmonicGravity::test().

virtual void initialize  )  [pure virtual]
 

We declare a pure virtual function.

Implemented in EGM96GravityModel, and JGM3GravityModel.

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

Return force model name.

Reimplemented from ForceModel.

Definition at line 111 of file SphericalHarmonicGravity.hpp.

double normFactor int  n,
int  m
[protected]
 

normalized coefficient

Definition at line 460 of file SphericalHarmonicGravity.cpp.

References gpstk::sqrt().

Referenced by SphericalHarmonicGravity::correctCSTides().

SphericalHarmonicGravity& setDesiredDegree const int &  n,
const int &  m
[inline]
 

Definition at line 95 of file SphericalHarmonicGravity.hpp.

Referenced by SatOrbit::createFMObjects().

void test  )  [virtual]
 

Reimplemented from ForceModel.

Definition at line 482 of file SphericalHarmonicGravity.cpp.

References SphericalHarmonicGravity::computeVW(), SphericalHarmonicGravity::gravity(), and SphericalHarmonicGravity::gravityGradient().


Member Data Documentation

bool correctOceanTide [protected]
 

Definition at line 169 of file SphericalHarmonicGravity.hpp.

Referenced by SphericalHarmonicGravity::doCompute().

bool correctPoleTide [protected]
 

Definition at line 168 of file SphericalHarmonicGravity.hpp.

Referenced by SphericalHarmonicGravity::doCompute().

bool correctSolidTide [protected]
 

Flags to indicate earth tides correction.

Definition at line 167 of file SphericalHarmonicGravity.hpp.

Referenced by SphericalHarmonicGravity::doCompute().

int desiredDegree [protected]
 

Degree and Order of gravity model desired.

Definition at line 164 of file SphericalHarmonicGravity.hpp.

Referenced by SphericalHarmonicGravity::computeVW().

int desiredOrder [protected]
 

Degree and Order of gravity model desired.

Definition at line 164 of file SphericalHarmonicGravity.hpp.

Referenced by SphericalHarmonicGravity::computeVW().

struct gpstk::SphericalHarmonicGravity::GravityModelData gmData [protected]
 

Referenced by SphericalHarmonicGravity::computeVW(), SphericalHarmonicGravity::correctCSTides(), SphericalHarmonicGravity::gravity(), and SphericalHarmonicGravity::gravityGradient().

EarthOceanTide oceanTide [protected]
 

Definition at line 174 of file SphericalHarmonicGravity.hpp.

Referenced by SphericalHarmonicGravity::correctCSTides().

EarthPoleTide poleTide [protected]
 

Definition at line 173 of file SphericalHarmonicGravity.hpp.

Referenced by SphericalHarmonicGravity::correctCSTides().

EarthSolidTide solidTide [protected]
 

Objects to do earth tides correction.

Definition at line 172 of file SphericalHarmonicGravity.hpp.

Referenced by SphericalHarmonicGravity::correctCSTides().

Matrix<double> V [protected]
 

V W (nmax+3)*(nmax+3) Harmonic function V and W.

Definition at line 161 of file SphericalHarmonicGravity.hpp.

Referenced by SphericalHarmonicGravity::computeVW(), SphericalHarmonicGravity::gravity(), SphericalHarmonicGravity::gravityGradient(), and SphericalHarmonicGravity::SphericalHarmonicGravity().

Matrix<double> W [protected]
 

V W (nmax+3)*(nmax+3) Harmonic function V and W.

Definition at line 161 of file SphericalHarmonicGravity.hpp.

Referenced by SphericalHarmonicGravity::computeVW(), SphericalHarmonicGravity::gravity(), SphericalHarmonicGravity::gravityGradient(), and SphericalHarmonicGravity::SphericalHarmonicGravity().


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