qtrocket/sim/USStandardAtmosphere.h

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