25#ifndef _ATMOSPHERE_HXX
26#define _ATMOSPHERE_HXX
28#include <simgear/compiler.h>
29#include <simgear/math/interpolater.hxx>
46#define SCD(name,val) const double name(val)
74 ISA_layer(
int,
double h,
double,
double,
double,
double t,
double,
75 double l=-1,
double=0)
89double P_layer(
const double height,
const double href,
90 const double Pref,
const double Tref,
const double lapse );
92double T_layer(
const double height,
const double href,
93 const double Pref,
const double Tref,
const double lapse );
110 double QNH(
const double field_elev,
const double field_press);
119 static double fieldPressure(
const double field_elev,
const double qnh);
150 SGInterpTable * a_tvs_p;
168 return a_tvs_p->interpolate(p_inHg);
171 return a_tvs_p->interpolate(set_inHg);
const ISA_layer ISA_def[]
double P_layer(const double height, const double href, const double Pref, const double Tref, const double lapse)
double T_layer(const double height, const double href, const double Pref, const double Tref, const double lapse)
#define SCD(name, val)
Model the atmosphere in a way consistent with the laws of physics.
std::pair< double, double > PT_vs_hpt(const double hh, const double _p0=atmodel::ISA::P0, const double _t0=atmodel::ISA::T0)
void dump_stack1(const double Tref)
double reading_ft(const double p_inHg, const double set_inHg=atmodel::ISA::P0/atmodel::inHg)
double kollsman_ft(const double set_inHg)
double press_alt_ft(const double p_inHg)
void check_one(const double height)
double QNH(const double field_elev, const double field_press)
static double densityAtAltitudeFt(const double alt, const double Tsl=atmodel::ISA::T0)
double a_vs_p(const double press, const double qnh=atmodel::ISA::P0)
static double ISATemperatureKAtAltitudeFt(const double alt, const double Tsl=atmodel::ISA::T0)
Compute the outisde temperature at an altitude, according to the standard atmosphere model.
static double knotsFromMachAtAltitudeFt(const double mach, const double altFt, const double Tsl=atmodel::ISA::T0)
static double CSMetersPerSecondAtAltitudeFt(const double alt, const double Tsl=atmodel::ISA::T0)
Compute the speed of sound at an altitude.
static double fieldPressure(const double field_elev, const double qnh)
Invert the QNH calculation to get the field pressure from a metar report.
static double machFromKnotsAtAltitudeFt(const double knots, const double altFt, const double Tsl=atmodel::ISA::T0)
double fake_T_vs_a_us(const double h_ft, const double Tsl=atmodel::ISA::T0) const
double fake_dp_vs_a_us(const double dpsl, const double h_ft)
ISA_layer(int, double h, double, double, double, double t, double, double l=-1, double=0)
const double P0(101325.0)
const double T0(15.+freezing)
const double inch(0.0254)
const double inHg(101325.0/760 *1000 *inch)
const double Rgas(8.31432)
const double freezing(273.15)
const double mm(.0289644)
const double foot(12 *inch)
const double sm(5280 *foot)