6 #define M_PI 3.1415926535897932384626433832795
15 : static_pressure(static_pressure_), temperature(temperature_), hygrometry(hygrometry_)
25 double tA_classic = NAN, tA_N = NAN, tA_O = NAN;
35 pr_rel * (24.0 + (4.04 * 10000.0 * h_molaire * ((0.02 + h_molaire) / (0.391 + h_molaire))));
36 const double frN = pr_rel * pow(t_rel, -0.5) *
37 (9.0 + 280.0 * h_molaire * exp((-4.170 * (pow(t_rel, (-1.0 / 3.0)) - 1))));
45 tA_classic = 1.84e-11 * (1.0 / pr_rel) * sqrt(t_rel);
46 tA_O = 0.01275 * exp(-2239.1 / tK) * (1.0 / (frO + (f2 / frO)));
47 tA_N = 0.1068 * exp(-3352.0 / tK) * (1.0 / (frN + (f2 / frN)));
50 (8.686 * f2 * (tA_classic + (pow(t_rel, -2.5) * (tA_O + tA_N))));
57 unsigned int indiceDepart = 2;
58 unsigned int indice = 0;
59 for (
unsigned int i = indiceDepart; i < TY_SPECTRE_DEFAULT_NB_ELMT - 2; i += 3, indice++)
69 const double gamma = 1.41;
70 const double R = 8.31441;
71 const double M = 0.029;
74 return sqrt((gamma * R * tK) / M);
79 const double R = 8.31441;
81 const double M = 0.029;
91 for (
unsigned int i = 0; i <
tabFreq.size(); i++)
103 double C = -6.8346 * pow((T01 / tK), 1.261) + 4.6151;
105 double prSat_prRef = pow(10, C);
const std::vector< double > tabFreq
void compute_k()
compute wave number
double hygrometry
Hygrometry.
OSpectre compute_length_absorption(double length) const
static const double Z_ref
reference impedance
double compute_z()
compute impedance
OSpectre absorption_spectrum
Absorption spectrum.
static const double absolute_zero
273.15 K
OSpectreOctave compute_length_absorption_oct(double length) const
AtmosphericConditions(double static_pressure_, double temperature_, double hygrometry_)
Constructor.
double static_pressure
Static pressure [Pa].
void compute_absorption_spectrum()
Compute absorption spectrum in dB/m.
OSpectreOctave absorption_spectrum_oct
static const double reference_temperature
Reference temperature [K].
OSpectre wave_number
Wave number spectrum.
static const double reference_pressure
Reference pressure [Pa].
double compute_hm() const
compute molar hygrometry coefficient
void compute_absorption_spectrum_oct()
Compute absorption spectrum in dB/m for octave band computation.
double temperature
Temperature [°C].
double compute_c() const
compute sound speed
OSpectreAbstract & toGPhy() const
Converts to physical quantity.
unsigned int getNbValues() const
Number of values in the spectrum.
void setType(TYSpectreType type)
Set the spectrum type.
OSpectreAbstract & mult(const OSpectreAbstract &spectre) const
Multiplication of two spectrums.
double * getTabValReel() override
Get an array of the real values of the spectrum.
double * getTabValReel() override
static OTabFreq getTabFreqExact()
std::vector< double > OTabFreq
Frequencies collection.