49 if (TYChemin::operator!=(other))
69 double Gs,
double Gm,
double Gr)
77 tabEtapes[0]._Absorption;
88 tabEtapes[0]._Absorption;
91 for (i = 1; i < tabEtapes.size(); i++)
96 tabEtapes[i]._Absorption);
116 for (
unsigned int i = 0; i < TY_SPECTRE_OCT_NB_ELMT; i++)
173 bool bHasIntermediateZone = dp > 30 * (hs + hr);
176 if (bHasIntermediateZone)
178 q = 1 - 30 * (hs + hr) / dp;
189 double a = 1.5 + 3.0 * exp(-0.12 * (h - 5) * (h - 5)) * (1 - exp(-dp / 50.0)) +
190 5.7 * exp(-0.09 * h * h) * (1 - exp(-2.8 * pow(10, -6) * dp * dp));
191 double b = 1.5 + 8.6 * exp(-0.09 * h * h) * (1 - exp(-dp / 50.0));
192 double c = 1.5 + 14.0 * exp(-0.46 * h * h) * (1 - exp(-dp / 50.0));
193 double d = 1.5 + 5.0 * exp(-0.9 * h * h) * (1 - exp(-dp / 50.0));
195 const double As[9]{-1.5, -1.5, -1.5 + G * a, -1.5 + G * b, -1.5 + G *
c,
196 -1.5 + G * d, -1.5 * (1 - G), -1.5 * (1 - G), -1.5 * (1 - G)};
205 const double Am[9]{-3.0 * q, -3.0 * q, -3 * q * (1 - Gm),
206 -3 * q * (1 - Gm), -3 * q * (1 - Gm), -3 * q * (1 - Gm),
207 -3 * q * (1 - Gm), -3 * q * (1 - Gm), -3 * q * (1 - Gm)};
std::deque< TYEtape9613Solver > TYTabEtape9613Solver
TYEtape collection.
Class for the definition of atmospheric conditions.
OSpectreOctave compute_length_absorption_oct(double length) const
double * getTabValReel() override
Get an array of the real values of the spectrum.
Representation of one of the most optimal path between source and receptor: S—>R. The class TYChemin ...
bool operator!=(const TYChemin9613Solver &other) const
Operator !=.
bool operator==(const TYChemin9613Solver &other) const
Operator ==.
OSpectreOctave calcGroundAttenuationM(double q, double Gm)
TYChemin9613Solver & operator=(const TYChemin9613Solver &other)
Operator =.
void calcGroundAttenuations(double distance, double hs, double hr, double Gs, double Gm, double Gr)
~TYChemin9613Solver() override
Destructor.
OSpectreOctave calcGroundAttenuationSR(double dp, double h, double G)
std::map< TYTypeAttenuation, OSpectreOctave > _attenuations
Attenuations spectra of the path.
void setAttenuationBarWhenNoPath(bool vertical, bool left)
Set attenuation bar to max to traduce the lack of diffracted ray on this path.
OSpectreOctave & getAttenuation(const TYTypeAttenuation type)
Return attenuation of the path of the type.
void calcAttenuation(const TYTabEtape9613Solver &tabEtapes, const AtmosphericConditions &atmos, double dp=0.0, double hs=0.0, double hr=0.0, double Gs=0.5, double Gm=0.5, double Gr=0.5)
Compute the global attenuation on the path.
TYChemin9613Solver()
Constructor.
void computeBarAttenuation(const OSpectreOctave &Dz, const bool vertical, const bool left)
Representation of one of the most optimal path between source and receptor: S—>R. The class TYChemin ...
TYTypeChemin _typeChemin
Path type (has an influence on the algorithm)
TYChemin & operator=(const TYChemin &other)
Operator =.
void build_eq_path(const T &tabEtapes)
build an acoustic_path from the tab of etapes
double _longueur
Total path length.
This file provides class for solver configuration.