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

Acoustic model for the default solver. More...

#include <TYAcousticModelDefaultSolver.h>

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

Public Member Functions

 TYAcousticModelDefaultSolver (TYSolverDefaultSolver &solver)
 
virtual void compute (const std::deque< TYSIntersection > &tabIntersect, TYTrajetDefaultSolver &trajet, TabPoint3D &ptsTop, TabPoint3D &ptsLeft, TabPoint3D &ptsRight)
 
void computeWaveLength () override
 Compute the wave length for the default solver. More...
 
virtual bool computeCheminsAvecEcran (const OSegment3D &rayon, const tympan::AcousticSource &source, const TabPoint3D &pts, const bool vertical, TYTabCheminDefaultSolver &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, TYTabCheminDefaultSolver &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, TYTabCheminDefaultSolver &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, TYTabCheminDefaultSolver &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 addGroundSteps (const OPoint3D &ptDebut, const OPoint3D &ptFin, const OSegment3D &penteMoyenne, const tympan::AcousticSource &source, const bool &fromSource, const bool &toRecepteur, TYTabEtapeDefaultSolver &Etapes, double &longueur) const
 Compute the different steps from a point to another via a reflection and a direct view. More...
 
bool solve (TYTrajetDefaultSolver &trajet)
 Compute the source contribution to the 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

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...
 
TYSolvergetSolver () const override
 
 FRIEND_TEST (test_TYAcousticModel, calculAttDiffraction)
 
 FRIEND_TEST (test_TYAcousticModel, calculC)
 
 FRIEND_TEST (test_TYAcousticModel, limAttDiffraction)
 
 FRIEND_TEST (test_TYAcousticModel, computeCheminReflexion)
 

Private Attributes

OSpectre _lambda
 
OSpectreComplex _absoNulle
 
TYSolverDefaultSolver_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 default solver.

Definition at line 34 of file TYAcousticModelDefaultSolver.h.

Constructor & Destructor Documentation

◆ TYAcousticModelDefaultSolver()

TYAcousticModelDefaultSolver::TYAcousticModelDefaultSolver ( TYSolverDefaultSolver solver)

Definition at line 27 of file TYAcousticModelDefaultSolver.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ addGroundSteps()

bool TYAcousticModelDefaultSolver::addGroundSteps ( const OPoint3D ptDebut,
const OPoint3D ptFin,
const OSegment3D penteMoyenne,
const tympan::AcousticSource source,
const bool &  fromSource,
const bool &  toRecepteur,
TYTabEtapeDefaultSolver Etapes,
double &  longueur 
) const

Compute the different steps from a point to another via a reflection and a direct view.

Parameters
[in]ptDebutStarting point.
[in]ptFinEnding point.
[in]penteMoyenneMean slope.
[in]sourceAcoustic source.
[in]fromSourceBoolean if the starting point is the source.
[in]toRecepteurBoolean if the ending point is the receptor.
[out]EtapesArray of all the computed TYEtape steps.
[out]longueurTotal length of the different steps
Returns
bool true if succeeds; false if not.

Definition at line 633 of file TYAcousticModelDefaultSolver.cpp.

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

◆ calculAttDiffraction()

OSpectre TYAcousticModelDefaultSolver::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.

Parameters
[in]rayonA segment describing the direct path between source and receptor.
[in]penteMoyenneMean slope between source and receptor
[in]miroirBoolean to indicate if we should use the source (false) or the image source (true) during the walking difference computation
[in]rePath length to take into account for the walking difference computation
[in]epaisseurTotal thickness of the obstacle.
[in]verticalBoolean to indicate we deal with the vertical plane (maximal attenuation is limited)
[in]avantApresBoolean to indicate if we are before (false) or after (true) the obstacle
[out]bDiffOkSet to false if the walking difference is <=0, true otherwise
[in]conditionFavspecify if favorite condition or not (false by default)
Returns
Attenuation from the diffraction on the screen.

Definition at line 977 of file TYAcousticModelDefaultSolver.cpp.

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

◆ calculC()

OSpectre TYAcousticModelDefaultSolver::calculC ( const double &  epaisseur) const

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

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

Definition at line 950 of file TYAcousticModelDefaultSolver.cpp.

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

◆ compute()

void TYAcousticModelDefaultSolver::compute ( const std::deque< TYSIntersection > &  tabIntersect,
TYTrajetDefaultSolver trajet,
TabPoint3D ptsTop,
TabPoint3D ptsLeft,
TabPoint3D ptsRight 
)
virtual

Definition at line 41 of file TYAcousticModelDefaultSolver.cpp.

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

◆ computeCheminAPlat()

void TYAcousticModelDefaultSolver::computeCheminAPlat ( const OSegment3D rayon,
const tympan::AcousticSource source,
TYTabCheminDefaultSolver TabChemins,
double  distance 
) const

Compute the list of paths for a perfectly flat and reflective ground.

Parameters
[in]rayonA segment describing the acoustic ray.
[in]sourceThe acoustic source.
[out]TabCheminsPaths list of the journey generated.
[out]distanceJourney distance

Definition at line 114 of file TYAcousticModelDefaultSolver.cpp.

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

◆ computeCheminReflexion()

void TYAcousticModelDefaultSolver::computeCheminReflexion ( const std::deque< TYSIntersection > &  tabIntersect,
const OSegment3D rayon,
const tympan::AcousticSource source,
TYTabCheminDefaultSolver TabChemins,
double  distance 
) const

Compute the list of path generated by reflection on the vertical walls.

Parameters
[in]tabIntersectArray of intersections
[in]rayonA segment describing the acoustic ray.
[in]sourceThe acoustic source.
[out]TabCheminsPaths list of the journey generated by reflection.
[out]distanceJourney distance

Definition at line 812 of file TYAcousticModelDefaultSolver.cpp.

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

◆ computeCheminSansEcran()

void TYAcousticModelDefaultSolver::computeCheminSansEcran ( const OSegment3D rayon,
const tympan::AcousticSource source,
TYTabCheminDefaultSolver TabChemins,
double  distance,
bool  conditionFav = false 
) const

Compute the list of paths generated by reflection on the ground if there is no screen.

Parameters
[in]rayonA segment describing the acoustic ray.
[in]sourceThe acoustic source.
[out]TabCheminsPaths list of the journey generated (1 or 2 under favorables conditions).
[out]distanceJourney distance
[in]conditionFavspecify if favorite condition or not (false by default)

Definition at line 210 of file TYAcousticModelDefaultSolver.cpp.

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

◆ computeCheminsAvecEcran()

bool TYAcousticModelDefaultSolver::computeCheminsAvecEcran ( const OSegment3D rayon,
const tympan::AcousticSource source,
const TabPoint3D pts,
const bool  vertical,
TYTabCheminDefaultSolver TabChemins,
double  distance,
bool  conditionFav = false 
) const
virtual

Compute the segment path from the list of the points of the TYTrajet journey. It takes in account the ground reflection.

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
[out]TabCheminsPaths list of the journey
[out]distanceJourney distance
[in]conditionFavspecify if favorite condition or not (false by default)
Returns
true if succeeds; false otherwise.

Definition at line 438 of file TYAcousticModelDefaultSolver.cpp.

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

◆ computeWaveLength()

void TYAcousticModelDefaultSolver::computeWaveLength ( )
overridevirtual

Compute the wave length for the default solver.

Implements TYAcousticModel.

Definition at line 34 of file TYAcousticModelDefaultSolver.cpp.

Here is the call graph for this function:

◆ FRIEND_TEST() [1/4]

TYAcousticModelDefaultSolver::FRIEND_TEST ( test_TYAcousticModel  ,
calculAttDiffraction   
)
private

◆ FRIEND_TEST() [2/4]

TYAcousticModelDefaultSolver::FRIEND_TEST ( test_TYAcousticModel  ,
calculC   
)
private

◆ FRIEND_TEST() [3/4]

TYAcousticModelDefaultSolver::FRIEND_TEST ( test_TYAcousticModel  ,
computeCheminReflexion   
)
private

◆ FRIEND_TEST() [4/4]

TYAcousticModelDefaultSolver::FRIEND_TEST ( test_TYAcousticModel  ,
limAttDiffraction   
)
private

◆ getReflexionSpectrumAt()

OSpectreComplex TYAcousticModelDefaultSolver::getReflexionSpectrumAt ( const OSegment3D incident,
double  length,
const OSegment3D segPente,
const tympan::AcousticSource source 
) const
private

Find Reflexion spectrum at point defined by the end of an incident segment.

Definition at line 1129 of file TYAcousticModelDefaultSolver.cpp.

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

◆ getSolver()

TYSolver& TYAcousticModelDefaultSolver::getSolver ( ) const
inlineoverrideprivatevirtual

Implements TYAcousticModel.

Definition at line 170 of file TYAcousticModelDefaultSolver.h.

◆ limAttDiffraction()

OSpectre TYAcousticModelDefaultSolver::limAttDiffraction ( const OSpectre sNC,
const OSpectre C 
) const

Limit the screen attenuation value with a frequency dependent criteria.

Parameters
sNCNon corrected spectrum
C

Definition at line 1065 of file TYAcousticModelDefaultSolver.cpp.

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

◆ solve()

bool TYAcousticModelDefaultSolver::solve ( TYTrajetDefaultSolver trajet)

Compute the source contribution to the point.

Parameters
trajetJourney

Definition at line 1097 of file TYAcousticModelDefaultSolver.cpp.

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

Member Data Documentation

◆ _absoNulle

OSpectreComplex TYAcousticModelDefaultSolver::_absoNulle
private

Definition at line 182 of file TYAcousticModelDefaultSolver.h.

◆ _lambda

OSpectre TYAcousticModelDefaultSolver::_lambda
private

Definition at line 181 of file TYAcousticModelDefaultSolver.h.

◆ _solver

TYSolverDefaultSolver& TYAcousticModelDefaultSolver::_solver
private

Reference to the solver.

Definition at line 185 of file TYAcousticModelDefaultSolver.h.


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