Code_TYMPAN
4.2.0
Industrial site acoustic simulation
|
Acoustic model for the default solver. More...
#include <TYAcousticModel.h>
Public Member Functions | |
TYAcousticModel (TYSolver &solver) | |
virtual | ~TYAcousticModel () |
virtual void | compute (const std::deque< TYSIntersection > &tabIntersect, TYTrajet &trajet, TabPoint3D &ptsTop, TabPoint3D &ptsLeft, TabPoint3D &ptsRight) |
void | init () |
Initialize the acoustic model. More... | |
virtual bool | computeCheminsAvecEcran (const OSegment3D &rayon, const tympan::AcousticSource &source, const TabPoint3D &pts, const bool vertical, TYTabChemin &TabChemins, double distance, bool conditionFav=false) const |
Compute the segment path from the list of the points of the TYTrajet journey. It takes in account the ground reflection. More... | |
void | computeCheminReflexion (const std::deque< TYSIntersection > &tabIntersect, const OSegment3D &rayon, const tympan::AcousticSource &source, TYTabChemin &TabChemins, double distance) const |
Compute the list of path generated by reflection on the vertical walls. More... | |
void | computeCheminSansEcran (const OSegment3D &rayon, const tympan::AcousticSource &source, TYTabChemin &TabChemins, double distance, bool conditionFav=false) const |
Compute the list of paths generated by reflection on the ground if there is no screen. More... | |
void | computeCheminAPlat (const OSegment3D &rayon, const tympan::AcousticSource &source, TYTabChemin &TabChemins, double distance) const |
Compute the list of paths for a perfectly flat and reflective ground. More... | |
OSpectre | calculC (const double &epaisseur) const |
Compute the spectrum of the C factor used in the diffraction calculation. More... | |
OSpectre | calculAttDiffraction (const OSegment3D &rayon, const OSegment3D &penteMoyenne, const bool &miroir, const double &re, const double &epaisseur, const bool &vertical, const bool &avantApres, bool &bDiffOk, bool conditionFav=false) const |
Compute the attenuation from the diffraction on the screen. More... | |
OSpectre | limAttDiffraction (const OSpectre &sNC, const OSpectre &C) const |
Limit the screen attenuation value with a frequency dependent criteria. More... | |
bool | addEtapesSol (const OPoint3D &ptDebut, const OPoint3D &ptFin, const OSegment3D &penteMoyenne, const tympan::AcousticSource &source, const bool &fromSource, const bool &toRecepteur, TYTabEtape &Etapes, double &longueur) const |
Compute the different steps from a point to another via a reflection and a direct view. More... | |
void | addEtapeDirectToChemins (const TYEtape &EtapeDirecte, TYTabChemin &TabChemin) const |
Add a direct journey to all the paths. More... | |
bool | solve (TYTrajet &trajet) |
Compute the source contribution to the point. More... | |
Public Member Functions inherited from AcousticModelInterface | |
AcousticModelInterface () | |
virtual | ~AcousticModelInterface () |
Private Member Functions | |
OSpectreComplex | getReflexionSpectrumAt (const OSegment3D &incident, double length, const OSegment3D &segPente, const tympan::AcousticSource &source) const |
Find Reflexion spectrum at point defined by the end of an incident segment. More... | |
void | meanSlope (const OSegment3D &director, OSegment3D &slope) const |
Create a segment corresponding to the projection of "director" segment on the ground. More... | |
FRIEND_TEST (test_TYAcousticModel, calculAttDiffraction) | |
FRIEND_TEST (test_TYAcousticModel, calculC) | |
FRIEND_TEST (test_TYAcousticModel, limAttDiffraction) | |
FRIEND_TEST (test_TYAcousticModel, computeCheminReflexion) | |
Private Attributes | |
bool | _useSol |
bool | _useReflex |
int | _propaCond |
bool | _useAtmo |
bool | _interference |
double | _paramH |
std::unique_ptr< AtmosphericConditions > | pSolverAtmos |
OSpectre | _lambda |
OSpectreComplex | _absoNulle |
TYSolver & | _solver |
Reference to the solver. More... | |
Acoustic model for the default solver.
Definition at line 31 of file TYAcousticModel.h.
TYAcousticModel::TYAcousticModel | ( | TYSolver & | solver | ) |
|
virtual |
Definition at line 42 of file TYAcousticModel.cpp.
void TYAcousticModel::addEtapeDirectToChemins | ( | const TYEtape & | EtapeDirecte, |
TYTabChemin & | TabChemin | ||
) | const |
Add a direct journey to all the paths.
[in] | EtapeDirecte | Direct journey. |
[out] | TabChemin | Array of all paths. |
bool TYAcousticModel::addEtapesSol | ( | const OPoint3D & | ptDebut, |
const OPoint3D & | ptFin, | ||
const OSegment3D & | penteMoyenne, | ||
const tympan::AcousticSource & | source, | ||
const bool & | fromSource, | ||
const bool & | toRecepteur, | ||
TYTabEtape & | Etapes, | ||
double & | longueur | ||
) | const |
Compute the different steps from a point to another via a reflection and a direct view.
[in] | ptDebut | Starting point. |
[in] | ptFin | Ending point. |
[in] | penteMoyenne | Mean slope. |
[in] | source | Acoustic source. |
[in] | fromSource | Boolean if the starting point is the source. |
[in] | toRecepteur | Boolean if the ending point is the receptor. |
[out] | Etapes | Array of all the computed TYEtape steps. |
[out] | longueur | Total length of the different steps |
true
if succeeds; false
if not. Definition at line 610 of file TYAcousticModel.cpp.
OSpectre TYAcousticModel::calculAttDiffraction | ( | const OSegment3D & | rayon, |
const OSegment3D & | penteMoyenne, | ||
const bool & | miroir, | ||
const double & | re, | ||
const double & | epaisseur, | ||
const bool & | vertical, | ||
const bool & | avantApres, | ||
bool & | bDiffOk, | ||
bool | conditionFav = false |
||
) | const |
Compute the attenuation from the diffraction on the screen.
[in] | rayon | A segment describing the direct path between source and receptor. |
[in] | penteMoyenne | Mean slope between source and receptor |
[in] | miroir | Boolean to indicate if we should use the source (false) or the image source (true) during the walking difference computation |
[in] | re | Path length to take into account for the walking difference computation |
[in] | epaisseur | Total thickness of the obstacle. |
[in] | vertical | Boolean to indicate we deal with the vertical plane (maximal attenuation is limited) |
[in] | avantApres | Boolean to indicate if we are before (false) or after (true) the obstacle |
[out] | bDiffOk | Set to false if the walking difference is <=0, true otherwise |
Definition at line 963 of file TYAcousticModel.cpp.
OSpectre TYAcousticModel::calculC | ( | const double & | epaisseur | ) | const |
Compute the spectrum of the C factor used in the diffraction calculation.
epaisseur | Total thickness of the obstacle. |
Definition at line 936 of file TYAcousticModel.cpp.
|
virtual |
Definition at line 71 of file TYAcousticModel.cpp.
void TYAcousticModel::computeCheminAPlat | ( | const OSegment3D & | rayon, |
const tympan::AcousticSource & | source, | ||
TYTabChemin & | TabChemins, | ||
double | distance | ||
) | const |
Compute the list of paths for a perfectly flat and reflective ground.
[in] | rayon | A segment describing the acoustic ray. |
[in] | source | The acoustic source. |
[out] | TabChemins | Paths list of the journey generated. |
[out] | distance | Journey distance |
Definition at line 143 of file TYAcousticModel.cpp.
void TYAcousticModel::computeCheminReflexion | ( | const std::deque< TYSIntersection > & | tabIntersect, |
const OSegment3D & | rayon, | ||
const tympan::AcousticSource & | source, | ||
TYTabChemin & | TabChemins, | ||
double | distance | ||
) | const |
Compute the list of path generated by reflection on the vertical walls.
[in] | tabIntersect | Array of intersections |
[in] | rayon | A segment describing the acoustic ray. |
[in] | source | The acoustic source. |
[out] | TabChemins | Paths list of the journey generated by reflection. |
[out] | distance | Journey distance |
Definition at line 807 of file TYAcousticModel.cpp.
void TYAcousticModel::computeCheminSansEcran | ( | const OSegment3D & | rayon, |
const tympan::AcousticSource & | source, | ||
TYTabChemin & | TabChemins, | ||
double | distance, | ||
bool | conditionFav = false |
||
) | const |
Compute the list of paths generated by reflection on the ground if there is no screen.
[in] | rayon | A segment describing the acoustic ray. |
[in] | source | The acoustic source. |
[out] | TabChemins | Paths list of the journey generated (1 or 2 under favorables conditions). |
[out] | distance | Journey distance |
Definition at line 234 of file TYAcousticModel.cpp.
|
virtual |
Compute the segment path from the list of the points of the TYTrajet journey. It takes in account the ground reflection.
[in] | rayon | A segment describing the acoustic ray. |
[in] | source | The acoustic source. |
[in] | pts | The list of points of the journey. |
[in] | vertical | boolean to indicate we deal with the vertical plane |
[out] | TabChemins | Paths list of the journey |
[out] | distance | Journey distance |
true
if succeeds; false
otherwise. Definition at line 443 of file TYAcousticModel.cpp.
|
private |
|
private |
|
private |
|
private |
|
private |
Find Reflexion spectrum at point defined by the end of an incident segment.
Definition at line 1106 of file TYAcousticModel.cpp.
void TYAcousticModel::init | ( | ) |
Initialize the acoustic model.
Definition at line 47 of file TYAcousticModel.cpp.
Limit the screen attenuation value with a frequency dependent criteria.
sNC | Non corrected spectrum |
C |
Definition at line 1044 of file TYAcousticModel.cpp.
|
private |
Create a segment corresponding to the projection of "director" segment on the ground.
Definition at line 1163 of file TYAcousticModel.cpp.
bool TYAcousticModel::solve | ( | TYTrajet & | trajet | ) |
Compute the source contribution to the point.
trajet | Journey |
Definition at line 1077 of file TYAcousticModel.cpp.
|
private |
Definition at line 199 of file TYAcousticModel.h.
|
private |
Definition at line 193 of file TYAcousticModel.h.
|
private |
Definition at line 198 of file TYAcousticModel.h.
|
private |
Definition at line 194 of file TYAcousticModel.h.
|
private |
Definition at line 191 of file TYAcousticModel.h.
|
private |
Reference to the solver.
Definition at line 203 of file TYAcousticModel.h.
|
private |
Definition at line 192 of file TYAcousticModel.h.
|
private |
Definition at line 190 of file TYAcousticModel.h.
|
private |
Definition at line 189 of file TYAcousticModel.h.
|
private |
Definition at line 196 of file TYAcousticModel.h.