Code_TYMPAN  4.4.0
Industrial site acoustic simulation
Public Member Functions | Private Member Functions | Private Attributes | List of all members
TYAcousticModel9613Solver Class Reference

Acoustic model for the 9613Solver. More...

#include <TYAcousticModel9613Solver.h>

Inheritance diagram for TYAcousticModel9613Solver:
Inheritance graph
[legend]
Collaboration diagram for TYAcousticModel9613Solver:
Collaboration graph
[legend]

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...
 
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 calculC3 (const double &epaisseur) const
 Compute the spectrum of the C3 factor used in the diffraction calculation. 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 ()
 

Private Member Functions

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...
 
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...
 
TYSolvergetSolver () const override
 
 FRIEND_TEST (test_TYAcoustiModel9613Solver, computeGZone)
 

Private Attributes

OSpectreOctave _lambda
 
OSpectreOctave _absoNulle
 
TYSolver9613Solver_solver
 Reference to the solver. More...
 

Additional Inherited Members

- Protected Attributes inherited from TYAcousticModel
bool _useSol
 
bool _useReflex
 
int _propaCond
 
bool _useAtmo
 
bool _interference
 
double _paramH
 
std::unique_ptr< AtmosphericConditions_pSolverAtmos
 

Detailed Description

Acoustic model for the 9613Solver.

Definition at line 43 of file TYAcousticModel9613Solver.h.

Constructor & Destructor Documentation

◆ TYAcousticModel9613Solver()

TYAcousticModel9613Solver::TYAcousticModel9613Solver ( TYSolver9613Solver solver)

Definition at line 30 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ addGroundSteps()

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.

Parameters
[in]ptStartStarting point.
[in]ptEndEnding point.
[in]sourceAcoustic source.
[in]fromSourceBoolean if the starting point is the source.
[out]EtapesArray of all the computed TYEtape steps.
Returns
bool true if succeeds; false if not.

Definition at line 220 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculAttDiffraction()

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.

Parameters
[in]rayA segment describing the direct path between source and receptor.
[in]rePath length to take into account for the walking difference computation
[in]dssLength between source and first edge of the obstacle
[in]dsrLength between last edge of the obstacle and receptor
[in]widthTotal width of the obstacle.
[in]verticalBoolean to indicate we deal with the vertical plane (maximal attenuation is limited)
Returns
Attenuation from the diffraction on the screen.

Definition at line 828 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculC3()

OSpectreOctave TYAcousticModel9613Solver::calculC3 ( const double &  epaisseur) const

Compute the spectrum of the C3 factor used in the diffraction calculation.

Parameters
epaisseurTotal thickness of the obstacle.
Returns
A OSpectreOctave giving the correction coefficient for each frequency.

Definition at line 801 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute()

void TYAcousticModel9613Solver::compute ( const std::deque< TYSIntersection > &  tabIntersect,
TYTrajet9613Solver trajet,
TabPoint3D ptsTop,
TabPoint3D ptsLeft,
TabPoint3D ptsRight 
)

Main entry point, trigger acoustic computations.

Parameters
[in]tabIntersectArray of intersections.
[in]trajetRoute between source and receptor.
[in]ptsTopList of points of the vertical path (in EV plane).
[in]ptsLeftList of points of the left lateral path (in EL plane).
[in]ptsRightList of points of the right lateral path (in EL plane).

Definition at line 44 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeCheminReflexion()

void TYAcousticModel9613Solver::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.

Parameters
[in]tabIntersectArray of intersections
[in]rayA segment describing the acoustic ray.
[in]sourceThe acoustic source.
[out]TabCheminsPaths list of the journey generated by reflection.
[out]distanceRoute (source-receptor) 3D distance

Definition at line 657 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeCheminSansEcran()

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.

Parameters
[in]tabIntersectArray of intersections
[in]rayonA segment describing the acoustic ray.
[in]sourceThe acoustic source.
[in]conditionFavTrue if propagation conditions are DownWard, False else. Not used in 9613Solver.
[out]TabCheminsPaths list of the journey generated
[out]distanceRoute (source-receptor) 3D distance

Definition at line 248 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeCheminsAvecEcran()

bool TYAcousticModel9613Solver::computeCheminsAvecEcran ( const OSegment3D rayon,
const tympan::AcousticSource source,
const TabPoint3D pts,
const bool  vertical,
TYTabChemin9613Solver TabChemins,
double  distance,
const bool  left 
) const
virtual

Compute barrier attenuation effect on the direct path for the considered geometrical path (top, left or right)

Parameters
[in]rayonA segment describing the acoustic ray.
[in]sourceThe acoustic source.
[in]ptsThe list of points of the journey.
[in]verticalboolean to indicate we deal with the vertical plane
[in]leftboolean to indicate we deal with the lateral left side
[out]TabCheminsPaths list of the journey
[out]distanceRoute (source-receptor) 3D distance
Returns
true if succeeds; false otherwise.

Definition at line 113 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeEffectiveBarAttenuation()

OSpectreOctave TYAcousticModel9613Solver::computeEffectiveBarAttenuation ( const OSpectreOctave Abar_top,
const OSpectreOctave Abar_left,
const OSpectreOctave Abar_right 
)

Definition at line 521 of file TYAcousticModel9613Solver.cpp.

Here is the caller graph for this function:

◆ computeGZone()

bool TYAcousticModel9613Solver::computeGZone ( const OPoint3D ptDebut,
const OPoint3D ptFin,
double &  GZone,
double &  dpZone,
const std::deque< TYSIntersection > &  tabIntersect 
) const
private

Compute GZone and dpZone for the segment between ptDebut and ptFin.

Parameters
[in]ptDebutStarting point of the considered segment
[in]ptFinEnding point of the considered segment
[in]tabIntersectArray of intersections
[out]GZoneGround factor computed for the considered segment
[out]dpZone2D distance of the considered segment

Definition at line 539 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeSegmentEdgesHeights()

bool TYAcousticModel9613Solver::computeSegmentEdgesHeights ( double &  hauteurA,
double &  hauteurB,
const OSegment3D meanSlope,
const OSegment3D ray 
) const
private

Compute heights relative to real ground, of the edges of a segment.

Parameters
[in]meanSlopeMean slope on real ground between segement edges
[in]raySegment whose edges heights are computed
[out]hauteurAHeight of ray._ptA segment edge
[out]hauteurBHeight of ray._ptB segment edge

Definition at line 989 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeWaveLength()

void TYAcousticModel9613Solver::computeWaveLength ( )
overridevirtual

Compute the wave length for the 9613Solver.

Implements TYAcousticModel.

Definition at line 37 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:

◆ FRIEND_TEST()

TYAcousticModel9613Solver::FRIEND_TEST ( test_TYAcoustiModel9613Solver  ,
computeGZone   
)
private

◆ getGroundfactors() [1/2]

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.

Parameters
[in]tabIntersectArray of intersections.
[in]ray2DConsidered ray projected on horizontal plane.
[in]hsHeight of the starting edge.
[in]hrHeight of the ending edge
[out]GsGround factor of the source zone.
[out]GmGround factor of the middle zone.
[out]GrGround factor of the receptor zone.
Returns
bool true if succeeds; false if not.

Definition at line 289 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getGroundfactors() [2/2]

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.

Parameters
[in]tabIntersectUpSegmentArray of intersections for segment source to reflexion point.
[in]tabIntersectDownSegmentArray of intersections for segment reflexion point to receptor.
[in]SO2DRay between source and reflexion point projected on horizontal plane.
[in]OR2DRay between reflexion and receptor point projected on horizontal plane.
[in]hsHeight of the starting edge.
[in]hrHeight of the ending edge
[out]GsGround factor of the source zone.
[out]GmGround factor of the middle zone.
[out]GrGround factor of the receptor zone.
Returns
bool true if succeeds; false if not.

Definition at line 362 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:

◆ getSolver()

TYSolver& TYAcousticModel9613Solver::getSolver ( ) const
inlineoverrideprivatevirtual

Implements TYAcousticModel.

Definition at line 239 of file TYAcousticModel9613Solver.h.

◆ limAttDiffraction()

OSpectreOctave TYAcousticModel9613Solver::limAttDiffraction ( const OSpectreOctave sNC,
const OSpectreOctave C 
) const

Limit the screen attenuation value with a frequency dependent criteria.

Parameters
sNCNon corrected spectrum
C

Definition at line 869 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ solve()

bool TYAcousticModel9613Solver::solve ( TYTrajet9613Solver trajet)

Compute the source contributions to the receptor point.

Parameters
trajetRoute

Definition at line 901 of file TYAcousticModel9613Solver.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ _absoNulle

OSpectreOctave TYAcousticModel9613Solver::_absoNulle
private

Definition at line 249 of file TYAcousticModel9613Solver.h.

◆ _lambda

OSpectreOctave TYAcousticModel9613Solver::_lambda
private

Definition at line 248 of file TYAcousticModel9613Solver.h.

◆ _solver

TYSolver9613Solver& TYAcousticModel9613Solver::_solver
private

Reference to the solver.

Definition at line 252 of file TYAcousticModel9613Solver.h.


The documentation for this class was generated from the following files: