Spacecraft Control Framework 1.0
Spacecraft Control Library
sc_atmJ70.h
1//-----------------------------------------------------------------------------------------
2// J70 Atmosphere model header.
3//-----------------------------------------------------------------------------------------
4// Copyright (c) 2002 Princeton Satellite Systems. All rights reserved.
5//-----------------------------------------------------------------------------------------
6
9
10#ifndef __AtmJ70__
11#define __AtmJ70__
12
13#include <matrixlib/matrixlib.h>
14
25class AtmJ70
26{
27
28 private:
29 double rho; // Density (g/cm^3)
30 double nHe; // Number density of helium
31 double nN2; // Number density of nitrogen
32 double nO2; // Number density of oxygen
33 double nAr; // Number density of argon
34 double nO; // Number density of monatomic oxygen
35 double tZ; // Temperature
36 double eM; // Mean molecular mass
37
38 double aP; // Geomagnetic index 6.7 hours before the computation
39 double f; // Daily 10.7 cm solar flux (e-22 watts/m^2/cycle/sec)
40 double fHat; // 81-day mean of f (e-22 watts/m^2/cycle/sec)
41 double fHat400; // fHat 400 days before computation date
42
43 // kSigma = 0, 1 or 2 (nominal +2 sig -2 sig)
44 // kTIming = 0, 1 or 2 (nominal, early, late)
45 bool SolarFluxPredictions( double jD, int kTiming, int kSigma, const char fileName[] );
46
47 public:
49 AtmJ70( void );
51 AtmJ70( double aP, double f, double fHat, double fHat400 );
53 AtmJ70( double jD, int kTiming, int kSigma, const char fileName[] );
55 bool Initialize( double jD, int kTiming, int kSigma, const char fileName[] );
57 void Update( double jD, ml_matrix rECI );
59 double GetDensity( void ){ return this->rho; };
61 double GetNumberDensityOfHelium( void ){ return this->nHe; };
63 double GetNumberDensityOfArgon( void ){ return this->nAr; };
65 double GetNumberDensityOfNitrogen( void ){ return this->nN2; };
67 double GetNumberDensityOfOxygen( void ){ return this->nO2; };
69 double GetNumberDensityOfMonatomicOxygen( void ){ return this->nO; };
71 double GetTemperature( void ){ return this->tZ; };
73 double GetMeanMolecularMass( void ){ return this->eM*0.001; };
74};
75
76
77#endif
Class implementing the Jacchia 1970 atmospheric density model.
Definition: sc_atmJ70.h:26
double GetNumberDensityOfArgon(void)
Get the number density of argon.
Definition: sc_atmJ70.h:63
AtmJ70(void)
Constructor.
Definition: sc_atmJ70.cc:61
double GetDensity(void)
Get the density.
Definition: sc_atmJ70.h:59
void Update(double jD, ml_matrix rECI)
Update the model.
Definition: sc_atmJ70.cc:164
double GetNumberDensityOfOxygen(void)
Get the number density of oxygen.
Definition: sc_atmJ70.h:67
double GetNumberDensityOfHelium(void)
Get the number density of helium.
Definition: sc_atmJ70.h:61
double GetMeanMolecularMass(void)
Get the mean molecular mass.
Definition: sc_atmJ70.h:73
double GetNumberDensityOfMonatomicOxygen(void)
Get the number density of monatomic oxygen.
Definition: sc_atmJ70.h:69
double GetTemperature(void)
Get the temperature.
Definition: sc_atmJ70.h:71
double GetNumberDensityOfNitrogen(void)
Get the number density of nitrogen.
Definition: sc_atmJ70.h:65
bool Initialize(double jD, int kTiming, int kSigma, const char fileName[])
Initialize.
Definition: sc_atmJ70.cc:130