|
Code_TYMPAN
4.4.0
Industrial site acoustic simulation
|
Acoustic model for the 9613Solver. More...
#include <TYAcousticModel9613Solver.h>


Public Member Functions | |
| TYAcousticModel9613Solver (TYSolver9613Solver &solver) | |
| void | compute (const std::deque< TYSIntersection > &tabIntersect, TYTrajet9613Solver &trajet, TabPoint3D &ptsTop, TabPoint3D &ptsLeft, TabPoint3D &ptsRight) |
| Main entry point, trigger acoustic computations. More... | |
| void | computeWaveLength () override |
| Compute the wave length for the 9613Solver. More... | |
| virtual bool | computeCheminsAvecEcran (const OSegment3D &rayon, const tympan::AcousticSource &source, const TabPoint3D &pts, const bool vertical, TYTabChemin9613Solver &TabChemins, double distance, const bool left) const |
| Compute barrier attenuation effect on the direct path for the considered geometrical path (top, left or right) More... | |
| virtual void | computeCheminReflexion (const std::deque< TYSIntersection > &tabIntersect, const OSegment3D &ray, const tympan::AcousticSource &source, TYTabChemin9613Solver &TabChemins, double distance) const |
| Compute the list of path generated by reflection on the vertical walls. More... | |
| void | computeCheminSansEcran (const std::deque< TYSIntersection > &tabIntersect, const OSegment3D &rayon, const tympan::AcousticSource &source, TYTabChemin9613Solver &TabChemins, double distance, bool conditionFav=false) const |
| Compute the main path between source and receptor. In 9613 solver, this path includes all attenuation effects, except reflexion one. More... | |
| OSpectreOctave | calculAttDiffraction (const OSegment3D &ray, const double &re, const double &dss, const double &dsr, const double &width, const bool &vertical) const |
| Compute the attenuation from the diffraction on the screen. More... | |
| OSpectreOctave | limAttDiffraction (const OSpectreOctave &sNC, const OSpectreOctave &C) const |
| Limit the screen attenuation value with a frequency dependent criteria. More... | |
| bool | addGroundSteps (const OPoint3D &ptStart, const OPoint3D &ptEnd, const tympan::AcousticSource &source, const bool &fromSource, TYTabEtape9613Solver &Etapes) const |
| Compute the different steps from a point to another via a reflection and a direct view. More... | |
| bool | getGroundfactors (const std::deque< TYSIntersection > &tabIntersect, const OSegment3D &ray2D, double hs, double hr, double &Gs, double &Gm, double &Gr) const |
| Get ground factors for source, middle and receptor zones. More... | |
| bool | getGroundfactors (const std::deque< TYSIntersection > &tabIntersectUpSegment, const std::deque< TYSIntersection > &tabIntersectDownSegment, const OSegment3D &SO2D, const OSegment3D &OR2D, double hs, double hr, double &Gs, double &Gm, double &Gr) const |
| Get ground factors for source, middle and receptor zones for a reflected path. More... | |
| OSpectreOctave | computeEffectiveBarAttenuation (const OSpectreOctave &Abar_top, const OSpectreOctave &Abar_left, const OSpectreOctave &Abar_right) |
| bool | solve (TYTrajet9613Solver &trajet) |
| Compute the source contributions to the receptor point. More... | |
Public Member Functions inherited from TYAcousticModel | |
| TYAcousticModel () | |
| virtual | ~TYAcousticModel () |
| void | init () |
| Initialize the acoustic model. More... | |
| OPlan | buildMeanSlopePlan (const OSegment3D &penteMoyenne) const |
| void | meanSlope (const OSegment3D &director, OSegment3D &slope) const |
| Create a segment corresponding to the projection of "director" segment on the ground. More... | |
Public Member Functions inherited from AcousticModelInterface | |
| AcousticModelInterface () | |
| virtual | ~AcousticModelInterface () |
Protected Member Functions | |
| virtual std::unique_ptr< TYChemin9613Solver > | createChemin () const |
| bool | computeSegmentEdgesHeights (double &hauteurA, double &hauteurB, const OSegment3D &meanSlope, const OSegment3D &ray) const |
| Compute heights relative to real ground, of the edges of a segment. More... | |
| OSpectreOctave | calculC3 (const double &epaisseur) const |
| Compute the spectrum of the C3 factor used in the diffraction calculation. More... | |
| virtual OSpectreOctave | calculZMin (const double C2, const OSpectreOctave &C3) const |
| Compute zmin, the min value of z for which the barrier attenuation Dz is null. This minimum distance is computed by wave length. zmin is only used for Kmeteo computation in Code_TYMPAN 9613Solver_2024 implementation. More... | |
| virtual OSpectreOctave | calculKmeteo (const bool vertical, const double d_SS, const double d_SR, const double d, const double z, const double e, const OSpectreOctave &z_min) const |
| Compute Kmeteo, the correction factor for meteorological effects In Code_TYMPAN 9613Solver version 96 implementation, zmin and e are not used. More... | |
| virtual OSpectreOctave | calculDz (const double z, const double C2, const OSpectreOctave &C3, const OSpectreOctave &Kmeteo, const OSpectreOctave &zmin) const |
| Compute Dz, the barrier attenuation for each octave band in dB. More... | |
| bool | computeGZone (const OPoint3D &ptDebut, const OPoint3D &ptFin, double &GZone, double &dpZone, const std::deque< TYSIntersection > &tabIntersect) const |
| Compute GZone and dpZone for the segment between ptDebut and ptFin. More... | |
Protected Attributes | |
| OSpectreOctave | _lambda |
| TYSolver9613Solver & | _solver |
| Reference to the solver. More... | |
Protected Attributes inherited from TYAcousticModel | |
| bool | _useSol |
| bool | _useReflex |
| int | _propaCond |
| bool | _useAtmo |
| bool | _interference |
| double | _paramH |
| std::unique_ptr< AtmosphericConditions > | _pSolverAtmos |
Private Member Functions | |
| TYSolver & | getSolver () const override |
| FRIEND_TEST (test_TYAcoustiModel9613Solver, computeGZone) | |
| FRIEND_TEST (test_TYAcousticModel9613Solver, calculZMin) | |
| FRIEND_TEST (test_TYAcousticModel9613Solver, calculC3_single_diffraction) | |
| FRIEND_TEST (test_TYAcousticModel9613Solver, calculC3_multiple_diffraction) | |
| FRIEND_TEST (test_TYAcousticModel9613Solver, calculK_meteo_z_0) | |
| FRIEND_TEST (test_TYAcousticModel9613Solver, calculK_meteo_z_30) | |
| FRIEND_TEST (test_TYAcousticModel9613Solver, calculK_meteo_lateral_diffraction) | |
| FRIEND_TEST (test_TYAcousticModel9613Solver, calculK_meteo_d_500_z_1) | |
| FRIEND_TEST (test_TYAcousticModel9613Solver, calculDz_z_positive) | |
| FRIEND_TEST (test_TYAcousticModel9613Solver, calculDz_z_negative) | |
Private Attributes | |
| OSpectreOctave | _absoNulle |
Acoustic model for the 9613Solver.
Definition at line 43 of file TYAcousticModel9613Solver.h.
| TYAcousticModel9613Solver::TYAcousticModel9613Solver | ( | TYSolver9613Solver & | solver | ) |
Definition at line 30 of file TYAcousticModel9613Solver.cpp.

| bool TYAcousticModel9613Solver::addGroundSteps | ( | const OPoint3D & | ptStart, |
| const OPoint3D & | ptEnd, | ||
| const tympan::AcousticSource & | source, | ||
| const bool & | fromSource, | ||
| TYTabEtape9613Solver & | Etapes | ||
| ) | const |
Compute the different steps from a point to another via a reflection and a direct view.
| [in] | ptStart | Starting point. |
| [in] | ptEnd | Ending point. |
| [in] | source | Acoustic source. |
| [in] | fromSource | Boolean if the starting point is the source. |
| [out] | Etapes | Array of all the computed TYEtape steps. |
true if succeeds; false if not. Definition at line 220 of file TYAcousticModel9613Solver.cpp.


| OSpectreOctave TYAcousticModel9613Solver::calculAttDiffraction | ( | const OSegment3D & | ray, |
| const double & | re, | ||
| const double & | dss, | ||
| const double & | dsr, | ||
| const double & | width, | ||
| const bool & | vertical | ||
| ) | const |
Compute the attenuation from the diffraction on the screen.
| [in] | ray | A segment describing the direct path between source and receptor. |
| [in] | re | Path length to take into account for the walking difference computation |
| [in] | dss | Length between source and first edge of the obstacle |
| [in] | dsr | Length between last edge of the obstacle and receptor |
| [in] | width | Total width of the obstacle. |
| [in] | vertical | Boolean to indicate we deal with the vertical plane (maximal attenuation is limited) |
Definition at line 840 of file TYAcousticModel9613Solver.cpp.


|
protected |
Compute the spectrum of the C3 factor used in the diffraction calculation.
| epaisseur | Total thickness of the obstacle. |
Definition at line 813 of file TYAcousticModel9613Solver.cpp.


|
protectedvirtual |
Compute Dz, the barrier attenuation for each octave band in dB.
| [in] | z | Difference between the path lengths of diffracted and direct sound in meter |
| [in] | C2 | Coefficient which includes the effect of ground reflections |
| [in] | C3 | Coefficient used for multiple diffraction |
| [in] | Kmeteo | correction factor for meteorological effects |
| [in] | zmin | Min value of z for which the barrier attenuation Dz is null |
Reimplemented in TYAcousticModel9613Solver2024.
Definition at line 892 of file TYAcousticModel9613Solver.cpp.


|
protectedvirtual |
Compute Kmeteo, the correction factor for meteorological effects In Code_TYMPAN 9613Solver version 96 implementation, zmin and e are not used.
| [in] | vertical | boolean to indicate we deal with the vertical plane |
| [in] | d_SS | Length between source and first edge of the obstacle in meter |
| [in] | d_SR | Length between last edge of the obstacle and receptor in meter |
| [in] | d | Length between source and reciever in meter |
| [in] | z | Difference between the path lengths of diffracted and direct sound in meter |
| [in] | e | Length between first and last diffraction edge for multiple diffraction, for single equals 0 |
| [in] | z_min | Min value of z for which the barrier attenuation Dz is null |
Reimplemented in TYAcousticModel9613Solver2024.
Definition at line 878 of file TYAcousticModel9613Solver.cpp.

|
protectedvirtual |
Compute zmin, the min value of z for which the barrier attenuation Dz is null. This minimum distance is computed by wave length. zmin is only used for Kmeteo computation in Code_TYMPAN 9613Solver_2024 implementation.
| [in] | C2 | Coefficient which includes the effect of ground reflections |
| [in] | C3 | Coefficient used for multiple diffraction |
Reimplemented in TYAcousticModel9613Solver2024.
Definition at line 871 of file TYAcousticModel9613Solver.cpp.

| void TYAcousticModel9613Solver::compute | ( | const std::deque< TYSIntersection > & | tabIntersect, |
| TYTrajet9613Solver & | trajet, | ||
| TabPoint3D & | ptsTop, | ||
| TabPoint3D & | ptsLeft, | ||
| TabPoint3D & | ptsRight | ||
| ) |
Main entry point, trigger acoustic computations.
| [in] | tabIntersect | Array of intersections. |
| [in] | trajet | Route between source and receptor. |
| [in] | ptsTop | List of points of the vertical path (in EV plane). |
| [in] | ptsLeft | List of points of the left lateral path (in EL plane). |
| [in] | ptsRight | List of points of the right lateral path (in EL plane). |
Definition at line 44 of file TYAcousticModel9613Solver.cpp.


|
virtual |
Compute the list of path generated by reflection on the vertical walls.
| [in] | tabIntersect | Array of intersections |
| [in] | ray | A segment describing the acoustic ray. |
| [in] | source | The acoustic source. |
| [out] | TabChemins | Paths list of the journey generated by reflection. |
| [out] | distance | Route (source-receptor) 3D distance |
Reimplemented in TYAcousticModel9613Solver2024.
Definition at line 658 of file TYAcousticModel9613Solver.cpp.


| void TYAcousticModel9613Solver::computeCheminSansEcran | ( | const std::deque< TYSIntersection > & | tabIntersect, |
| const OSegment3D & | rayon, | ||
| const tympan::AcousticSource & | source, | ||
| TYTabChemin9613Solver & | TabChemins, | ||
| double | distance, | ||
| bool | conditionFav = false |
||
| ) | const |
Compute the main path between source and receptor. In 9613 solver, this path includes all attenuation effects, except reflexion one.
| [in] | tabIntersect | Array of intersections |
| [in] | rayon | A segment describing the acoustic ray. |
| [in] | source | The acoustic source. |
| [in] | conditionFav | True if propagation conditions are DownWard, False else. Not used in 9613Solver. |
| [out] | TabChemins | Paths list of the journey generated |
| [out] | distance | Route (source-receptor) 3D distance |
Definition at line 248 of file TYAcousticModel9613Solver.cpp.


|
virtual |
Compute barrier attenuation effect on the direct path for the considered geometrical path (top, left or right)
| [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 |
| [in] | left | boolean to indicate we deal with the lateral left side |
| [out] | TabChemins | Paths list of the journey |
| [out] | distance | Route (source-receptor) 3D distance |
true if succeeds; false otherwise. Definition at line 113 of file TYAcousticModel9613Solver.cpp.


| OSpectreOctave TYAcousticModel9613Solver::computeEffectiveBarAttenuation | ( | const OSpectreOctave & | Abar_top, |
| const OSpectreOctave & | Abar_left, | ||
| const OSpectreOctave & | Abar_right | ||
| ) |
Definition at line 522 of file TYAcousticModel9613Solver.cpp.

|
protected |
Compute GZone and dpZone for the segment between ptDebut and ptFin.
| [in] | ptDebut | Starting point of the considered segment |
| [in] | ptFin | Ending point of the considered segment |
| [in] | tabIntersect | Array of intersections |
| [out] | GZone | Ground factor computed for the considered segment |
| [out] | dpZone | 2D distance of the considered segment |
Definition at line 540 of file TYAcousticModel9613Solver.cpp.


|
protected |
Compute heights relative to real ground, of the edges of a segment.
| [in] | meanSlope | Mean slope on real ground between segement edges |
| [in] | ray | Segment whose edges heights are computed |
| [out] | hauteurA | Height of ray._ptA segment edge |
| [out] | hauteurB | Height of ray._ptB segment edge |
Definition at line 1044 of file TYAcousticModel9613Solver.cpp.


|
overridevirtual |
Compute the wave length for the 9613Solver.
Implements TYAcousticModel.
Definition at line 37 of file TYAcousticModel9613Solver.cpp.

|
inlineprotectedvirtual |
Reimplemented in TYAcousticModel9613Solver2024.
Definition at line 210 of file TYAcousticModel9613Solver.h.

|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
| bool TYAcousticModel9613Solver::getGroundfactors | ( | const std::deque< TYSIntersection > & | tabIntersect, |
| const OSegment3D & | ray2D, | ||
| double | hs, | ||
| double | hr, | ||
| double & | Gs, | ||
| double & | Gm, | ||
| double & | Gr | ||
| ) | const |
Get ground factors for source, middle and receptor zones.
| [in] | tabIntersect | Array of intersections. |
| [in] | ray2D | Considered ray projected on horizontal plane. |
| [in] | hs | Height of the starting edge. |
| [in] | hr | Height of the ending edge |
| [out] | Gs | Ground factor of the source zone. |
| [out] | Gm | Ground factor of the middle zone. |
| [out] | Gr | Ground factor of the receptor zone. |
true if succeeds; false if not. Definition at line 290 of file TYAcousticModel9613Solver.cpp.


| bool TYAcousticModel9613Solver::getGroundfactors | ( | const std::deque< TYSIntersection > & | tabIntersectUpSegment, |
| const std::deque< TYSIntersection > & | tabIntersectDownSegment, | ||
| const OSegment3D & | SO2D, | ||
| const OSegment3D & | OR2D, | ||
| double | hs, | ||
| double | hr, | ||
| double & | Gs, | ||
| double & | Gm, | ||
| double & | Gr | ||
| ) | const |
Get ground factors for source, middle and receptor zones for a reflected path.
| [in] | tabIntersectUpSegment | Array of intersections for segment source to reflexion point. |
| [in] | tabIntersectDownSegment | Array of intersections for segment reflexion point to receptor. |
| [in] | SO2D | Ray between source and reflexion point projected on horizontal plane. |
| [in] | OR2D | Ray between reflexion and receptor point projected on horizontal plane. |
| [in] | hs | Height of the starting edge. |
| [in] | hr | Height of the ending edge |
| [out] | Gs | Ground factor of the source zone. |
| [out] | Gm | Ground factor of the middle zone. |
| [out] | Gr | Ground factor of the receptor zone. |
true if succeeds; false if not. Definition at line 363 of file TYAcousticModel9613Solver.cpp.

|
inlineoverrideprivatevirtual |
Implements TYAcousticModel.
Definition at line 286 of file TYAcousticModel9613Solver.h.
| OSpectreOctave TYAcousticModel9613Solver::limAttDiffraction | ( | const OSpectreOctave & | sNC, |
| const OSpectreOctave & | C | ||
| ) | const |
Limit the screen attenuation value with a frequency dependent criteria.
| sNC | Non corrected spectrum |
| C |
Definition at line 918 of file TYAcousticModel9613Solver.cpp.


| bool TYAcousticModel9613Solver::solve | ( | TYTrajet9613Solver & | trajet | ) |
Compute the source contributions to the receptor point.
| trajet | Route |
Definition at line 950 of file TYAcousticModel9613Solver.cpp.


|
private |
Definition at line 308 of file TYAcousticModel9613Solver.h.
|
protected |
Definition at line 292 of file TYAcousticModel9613Solver.h.
|
protected |
Reference to the solver.
Definition at line 294 of file TYAcousticModel9613Solver.h.