Msise00Drag Class Reference
[GeoDynamics]

#include <Msise00Drag.hpp>

Inheritance diagram for Msise00Drag:

Inheritance graph
[legend]
Collaboration diagram for Msise00Drag:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class computes the NRLMSISE atmosphere model.

The NRLMSISE-00 model was developed by Mike Picone, Alan Hedin, and Doug Drob. They also wrote a NRLMSISE-00 distribution package in FORTRAN which is available at http://uap-www.nrl.navy.mil/models_web/msis/msis_home.htm

Dominik Brodowski implemented and maintains this C version. You can reach him at devel@brodo.de. and check http://www.brodo.de/english/pub/nrlmsise/index.html for updated releases of this package.

Definition at line 55 of file Msise00Drag.hpp.

Public Member Functions

 Msise00Drag ()
 Default constructor.
virtual ~Msise00Drag ()
 Deconstructor.
void test ()
virtual double computeDensity (UTCTime utc, EarthBody &rb, Vector< double > r, Vector< double > v)
 Abstract class requires the subclass to compute the atmospheric density.

Protected Member Functions

void gtd7 (struct nrlmsise_input *input, struct nrlmsise_flags *flags, struct nrlmsise_output *output)
 Neutral Atmosphere Empircial Model from the surface to lower exosphere.
void gtd7d (struct nrlmsise_input *input, struct nrlmsise_flags *flags, struct nrlmsise_output *output)
 This subroutine provides Effective Total Mass Density for output d[5] which includes contributions from "anomalous oxygen" which can affect satellite drag above 500 km.
void gts7 (struct nrlmsise_input *input, struct nrlmsise_flags *flags, struct nrlmsise_output *output)
 Thermospheric portion of NRLMSISE-00.
void ghp7 (struct nrlmsise_input *input, struct nrlmsise_flags *flags, struct nrlmsise_output *output, double press)
 To specify outputs at a pressure level (press) rather than at an altitude.

Protected Attributes

double ap_opt
double f107_opt


Constructor & Destructor Documentation

Msise00Drag  )  [inline]
 

Default constructor.

Definition at line 60 of file Msise00Drag.hpp.

virtual ~Msise00Drag  )  [inline, virtual]
 

Deconstructor.

Definition at line 67 of file Msise00Drag.hpp.


Member Function Documentation

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

Abstract class requires the subclass to compute the atmospheric density.

Parameters:
utc epoch in UTC
rb EarthRef object.
r Position vector.
v Velocity vector
Returns:
Atmospheric density in kg/m^3

Implements AtmosphericDrag.

Definition at line 300 of file Msise00Drag.cpp.

References Msise00Drag::nrlmsise_input::alt, Msise00Drag::nrlmsise_input::ap, Msise00Drag::nrlmsise_output::d, Msise00Drag::nrlmsise_input::doy, Msise00Drag::nrlmsise_input::f107, Msise00Drag::nrlmsise_input::f107A, Msise00Drag::nrlmsise_input::g_lat, Msise00Drag::nrlmsise_input::g_long, Position::getAltitude(), Position::getGeodeticLatitude(), Position::getLongitude(), Msise00Drag::gtd7(), Msise00Drag::gtd7d(), gpstk::J2kToECEFMatrix(), Msise00Drag::nrlmsise_input::lst, Msise00Drag::nrlmsise_input::sec, Msise00Drag::nrlmsise_flags::switches, and Msise00Drag::nrlmsise_input::year.

void ghp7 struct nrlmsise_input input,
struct nrlmsise_flags flags,
struct nrlmsise_output output,
double  press
[protected]
 

To specify outputs at a pressure level (press) rather than at an altitude.

Definition at line 1343 of file Msise00Drag.cpp.

References Msise00Drag::gtd7(), gpstk::log10(), gpstk::pow(), gpstk::sqrt(), and Msise00Drag::test().

void gtd7 struct nrlmsise_input input,
struct nrlmsise_flags flags,
struct nrlmsise_output output
[protected]
 

Neutral Atmosphere Empircial Model from the surface to lower exosphere.

Definition at line 1206 of file Msise00Drag.cpp.

References Msise00Drag::nrlmsise_output::d, Msise00Drag::gts7(), gpstk::pow(), and Msise00Drag::nrlmsise_output::t.

Referenced by Msise00Drag::computeDensity(), Msise00Drag::ghp7(), Msise00Drag::gtd7d(), and Msise00Drag::test().

void gtd7d struct nrlmsise_input input,
struct nrlmsise_flags flags,
struct nrlmsise_output output
[protected]
 

This subroutine provides Effective Total Mass Density for output d[5] which includes contributions from "anomalous oxygen" which can affect satellite drag above 500 km.

See the section "output" for additional details.

Definition at line 1332 of file Msise00Drag.cpp.

References Msise00Drag::nrlmsise_output::d, and Msise00Drag::gtd7().

Referenced by Msise00Drag::computeDensity().

void gts7 struct nrlmsise_input input,
struct nrlmsise_flags flags,
struct nrlmsise_output output
[protected]
 

Thermospheric portion of NRLMSISE-00.

Definition at line 1424 of file Msise00Drag.cpp.

References gpstk::cos(), gpstk::exp(), gpstk::pow(), and gpstk::sin().

Referenced by Msise00Drag::gtd7().

void test  ) 
 

Reimplemented from ForceModel.

Definition at line 46 of file Msise00Drag.cpp.

References Msise00Drag::ap_array::a, Msise00Drag::nrlmsise_input::alt, Msise00Drag::nrlmsise_input::ap, Msise00Drag::nrlmsise_input::ap_a, Msise00Drag::nrlmsise_input::doy, Msise00Drag::nrlmsise_input::f107, Msise00Drag::nrlmsise_input::f107A, Msise00Drag::nrlmsise_input::g_lat, Msise00Drag::nrlmsise_input::g_long, Msise00Drag::gtd7(), Msise00Drag::nrlmsise_input::lst, Msise00Drag::nrlmsise_input::sec, Msise00Drag::nrlmsise_flags::switches, and Msise00Drag::nrlmsise_input::year.

Referenced by Msise00Drag::ghp7().


Member Data Documentation

double ap_opt [protected]
 

Definition at line 86 of file Msise00Drag.hpp.

double f107_opt [protected]
 

Definition at line 87 of file Msise00Drag.hpp.


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