39 lines
985 B
C++
39 lines
985 B
C++
#ifndef SIM_USSTANDARDATMOSPHERE_H
|
|
#define SIM_USSTANDARDATMOSPHERE_H
|
|
|
|
#include "AtmosphericModel.h"
|
|
#include "utils/BinMap.h"
|
|
|
|
namespace sim
|
|
{
|
|
|
|
class USStandardAtmosphere : public AtmosphericModel
|
|
{
|
|
public:
|
|
USStandardAtmosphere();
|
|
virtual ~USStandardAtmosphere();
|
|
|
|
/**
|
|
* @brief Get the density of the air at a given altitude above mean sea level
|
|
* This is overly simplistic and wrong implementation.
|
|
*
|
|
* @todo Fix this implementation. See the 1976 NOAA paper for the right way to
|
|
* do it
|
|
*
|
|
* @param altitude the altitude above sea level
|
|
* @return the density in kg/m^3
|
|
*/
|
|
double getDensity(double altitude) override;
|
|
double getPressure(double altitude) override;
|
|
double getTemperature(double altitude) override;
|
|
|
|
private:
|
|
static utils::BinMap temperatureLapseRate;
|
|
static utils::BinMap standardTemperature;
|
|
static utils::BinMap standardDensity;
|
|
|
|
|
|
};
|
|
|
|
} // namespace sim
|
|
#endif // SIM_USSTANDARDATMOSPHERE_H
|