12#ifndef WSFJACCHIAROBERTSATMOSPHERE_HPP
13#define WSFJACCHIAROBERTSATMOSPHERE_HPP
15#include "wsf_space_export.h"
17#include "UtCalendar.hpp"
37 bool ProcessInput(UtInput& aInput)
override;
59 double GetDensity(
const UtCalendar& aEpoch,
const UtLLAPos& aLLA)
const override;
61 static constexpr const char*
cTYPE{
"WSF_JACCHIA_ROBERTS_ATMOSPHERE"};
69 mutable double mRoot1{};
70 mutable double mRoot2{};
71 mutable double mX_Root{};
72 mutable double mY_Root{};
73 mutable double mTinfinity{};
75 mutable double mSum{};
76 mutable double mX_Temp{};
77 mutable bool mLowAltWarned{
false};
79 double GetPolarRadiusKm()
const;
80 double GetPolarRadiusKmSquared()
const;
81 double JacchiaRoberts(
const UtLLAPos& aLLA,
const UtCalendar& aEpoch)
const;
82 double Exotherm(
const UtLLAPos& aLLA,
double aSunDec,
double aSolarLon)
const;
83 double Rho100(
double aHeightKm,
double aTemperature)
const;
84 double Rho125(
double aHeightKm,
double aTemperature)
const;
85 double RhoCorrection(
double aHeightKm,
double aA1_Time,
double aGeoLat)
const;
86 double RhoHigh(
double aHeightKm,
double aTemperature,
double aT_500,
double aSunDec,
double aGeoLat)
const;
87 static void Roots(
double aA[],
int aNa,
double aCroots[][2],
int aIrl);
88 static void DeflatePolynomial(
double aC[],
int aN,
double aRoot,
double aCnew[]);
Atmosphere()
Definition WsfAtmosphere.cpp:25
void SetGeomagneticIndex(double aKp)
Set the geomagnetic index, K_p.
Definition WsfJacchiaRobertsAtmosphere.hpp:55
void SetAverageSolarFlux(double aF107a)
Set the average 10.7 cm solar flux (in 10^-22 W/m^2/Hz).
Definition WsfJacchiaRobertsAtmosphere.hpp:49
~JacchiaRobertsAtmosphere() override=default
JacchiaRobertsAtmosphere * Clone() const override
Definition WsfJacchiaRobertsAtmosphere.hpp:36
double GetSolarFlux() const
Get the 10.7 cm solar flux (in 10^-22 W/m^2/Hz).
Definition WsfJacchiaRobertsAtmosphere.hpp:43
void SetSolarFlux(double aF107)
Set the 10.7 cm solar flux (in 10^-22 W/m^w/Hz).
Definition WsfJacchiaRobertsAtmosphere.hpp:52
JacchiaRobertsAtmosphere(const JacchiaRobertsAtmosphere &aOther)=default
JacchiaRobertsAtmosphere()
Definition WsfJacchiaRobertsAtmosphere.cpp:102
double GetAverageSolarFlux() const
Get the average 10.7 cm solar flux (in 10^-22 W/m^2/Hz).
Definition WsfJacchiaRobertsAtmosphere.hpp:40
static constexpr const char * cTYPE
Definition WsfJacchiaRobertsAtmosphere.hpp:61
double GetGeomagneticIndex() const
Get the geomagnetic index, K_p.
Definition WsfJacchiaRobertsAtmosphere.hpp:46
const char * GetScriptClassName() const override
Definition WsfJacchiaRobertsAtmosphere.hpp:57
Definition WsfAtmosphere.cpp:23
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32