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

Representation of one of the most optimal path between source and receptor: S—>R. The class TYChemin represents a path between a Source and a receptor (Recepteur class). It's constituted of a collection of steps (TYEtape class). Specific derivation of TYChemin for 9613Solver. More...

#include <TYChemin9613Solver.h>

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

Public Member Functions

 TYChemin9613Solver ()
 Constructor. More...
 
 TYChemin9613Solver (const TYChemin9613Solver &other)
 Copy contructor. More...
 
 ~TYChemin9613Solver () override
 Destructor. More...
 
TYChemin9613Solveroperator= (const TYChemin9613Solver &other)
 Operator =. More...
 
bool operator== (const TYChemin9613Solver &other) const
 Operator ==. More...
 
bool operator!= (const TYChemin9613Solver &other) const
 Operator !=. More...
 
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. More...
 
void calcMinimalExtensionCondition (const OPoint3D &S, const OPoint3D &O, const OPoint3D &R, double a, double h, const OVector3D &n)
 Evaluate minimal extension condition for specular reflections on flat surfaces in function of the wavelength The result is stored as an attenuation of type REFLEXION_MIN_EXT_COND. It is the responsibility of the user to ensure that reflections occur over flat surfaces. NOTE: restricted to 1st order reflections only. More...
 
void computeBarAttenuation (const OSpectreOctave &Dz, const bool vertical, const bool left)
 Compute barrier attenuation on the path. It implements recommendation 5.5 of 17534-3 standard, or equivalently Eq. 16-17 of 9613-2:2024 standard. In addition to the parameters, the result is function of the attenuation of type ATTENUATION_GND_TOTAL. The result is stored as an attenuation of type ATTENUATION_BAR_TOP, or ATTENUATION_BAR_LEFT, or ATTENUATION_BAR_RIGHT. More...
 
OSpectreOctavegetAttenuation (const TYTypeAttenuation type)
 Return attenuation of the path of the type. More...
 
void setAttenuation (const TYTypeAttenuation &type, const OSpectreOctave &att)
 Set the atmospheric attenuation. More...
 
void setAttenuationBarWhenNoPath (bool vertical, bool left)
 Set attenuation bar to max to traduce the lack of diffracted ray on this path. More...
 
- Public Member Functions inherited from TYChemin
 TYChemin ()
 Constructor. More...
 
 TYChemin (const TYChemin &other)
 Copy contructor. More...
 
virtual ~TYChemin ()
 Destructor. More...
 
TYCheminoperator= (const TYChemin &other)
 Operator =. More...
 
bool operator== (const TYChemin &other) const
 Operator ==. More...
 
bool operator!= (const TYChemin &other) const
 Operator !=. More...
 
double getLongueur ()
 Get/Set the path length. More...
 
const double getLongueur () const
 
void setLongueur (const double &longueur)
 
double getDistance ()
 Get/Set the distance between source and receptor. More...
 
const double getDistance () const
 
void setDistance (const double &distance)
 
void setType (const TYTypeChemin &type)
 Change the path type. More...
 
const TYTypeChemin getType () const
 Return the path type. More...
 
template<typename T >
void build_eq_path (const T &tabEtapes)
 build an acoustic_path from the tab of etapes More...
 
acoustic_pathget_ray (OPoint3D ptR)
 

Protected Member Functions

virtual OSpectreOctave calcTotalGroundAttenuation (const OSpectreOctave &Agr_s, const OSpectreOctave &Agr_r, const OSpectreOctave &Agr_m, double hs, double hr, double dp) const
 Compute total ground attenuation Agr from region ground attenuations and geometric configuration. More...
 
virtual OSpectreOctave calcMinimalExtensionConditionOneReflection (const OPoint3D &S, const OPoint3D &O, const OPoint3D &R, double a, double h, const OVector3D &n) const
 Evaluate minimal extension condition for a specular reflection on a flat surface in function of the wavelength. More...
 

Protected Attributes

std::map< TYTypeAttenuation, OSpectreOctave_attenuations
 Attenuations spectra of the path. More...
 
- Protected Attributes inherited from TYChemin
TYTypeChemin _typeChemin
 Path type (has an influence on the algorithm) More...
 
double _longueur
 Total path length. More...
 
double _distance
 Direct distance between source and receptor. More...
 
acoustic_path_eq_path
 Equivalent acoustic_path. More...
 

Private Member Functions

void calcGroundAttenuations (double distance, double hs, double hr, double Gs, double Gm, double Gr)
 
OSpectreOctave calcGroundAttenuationSR (double dp, double h, double G)
 
OSpectreOctave calcGroundAttenuationM (double q, double Gm)
 

Detailed Description

Representation of one of the most optimal path between source and receptor: S—>R. The class TYChemin represents a path between a Source and a receptor (Recepteur class). It's constituted of a collection of steps (TYEtape class). Specific derivation of TYChemin for 9613Solver.

Definition at line 40 of file TYChemin9613Solver.h.

Constructor & Destructor Documentation

◆ TYChemin9613Solver() [1/2]

TYChemin9613Solver::TYChemin9613Solver ( )

Constructor.

Definition at line 19 of file TYChemin9613Solver.cpp.

◆ TYChemin9613Solver() [2/2]

TYChemin9613Solver::TYChemin9613Solver ( const TYChemin9613Solver other)

Copy contructor.

Definition at line 24 of file TYChemin9613Solver.cpp.

◆ ~TYChemin9613Solver()

TYChemin9613Solver::~TYChemin9613Solver ( )
override

Destructor.

Definition at line 29 of file TYChemin9613Solver.cpp.

Member Function Documentation

◆ calcAttenuation()

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

Parameters
[in]tabEtapesArray of steps.
[in]atmosAtmospheric ocnditions.
[in]dpDistance 2D between source and receptor for considered path.
[in]hsHeight of source.
[in]hrHeight of receptor
[in]GsGround factor of the source zone.
[in]GmGround factor of the middle zone.
[in]GrGround factor of the receptor zone.

Definition at line 67 of file TYChemin9613Solver.cpp.

Here is the call graph for this function:

◆ calcGroundAttenuationM()

OSpectreOctave TYChemin9613Solver::calcGroundAttenuationM ( double  q,
double  Gm 
)
private

Definition at line 211 of file TYChemin9613Solver.cpp.

Here is the caller graph for this function:

◆ calcGroundAttenuations()

void TYChemin9613Solver::calcGroundAttenuations ( double  distance,
double  hs,
double  hr,
double  Gs,
double  Gm,
double  Gr 
)
private

Definition at line 175 of file TYChemin9613Solver.cpp.

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

◆ calcGroundAttenuationSR()

OSpectreOctave TYChemin9613Solver::calcGroundAttenuationSR ( double  dp,
double  h,
double  G 
)
private

Definition at line 198 of file TYChemin9613Solver.cpp.

Here is the caller graph for this function:

◆ calcMinimalExtensionCondition()

void TYChemin9613Solver::calcMinimalExtensionCondition ( const OPoint3D S,
const OPoint3D O,
const OPoint3D R,
double  a,
double  h,
const OVector3D n 
)

Evaluate minimal extension condition for specular reflections on flat surfaces in function of the wavelength The result is stored as an attenuation of type REFLEXION_MIN_EXT_COND. It is the responsibility of the user to ensure that reflections occur over flat surfaces. NOTE: restricted to 1st order reflections only.

Parameters
Sthe source point
Othe reflection point on the flat surface
Rthe receptor point
athe horizontal extension of the surface (in meters)
hthe vertical extension of the surface (in meters)
nnormal of the surface (assumed to have a non-zero horizontal component)

Definition at line 107 of file TYChemin9613Solver.cpp.

Here is the call graph for this function:

◆ calcMinimalExtensionConditionOneReflection()

OSpectreOctave TYChemin9613Solver::calcMinimalExtensionConditionOneReflection ( const OPoint3D S,
const OPoint3D O,
const OPoint3D R,
double  a,
double  h,
const OVector3D n 
) const
protectedvirtual

Evaluate minimal extension condition for a specular reflection on a flat surface in function of the wavelength.

Parameters
Sthe source point
Othe reflection point on the flat surface
Rthe receptor point
athe horizontal extension of the surface (in meters)
hthe vertical extension of the surface (in meters)
nnormal of the surface (assumed to have a non-zero horizontal component)
Returns
a spectrum whose components are 1 (reflection occurs) or 0 (the wave passes through the surface)

Reimplemented in TYChemin9613Solver2024.

Definition at line 232 of file TYChemin9613Solver.cpp.

Here is the caller graph for this function:

◆ calcTotalGroundAttenuation()

OSpectreOctave TYChemin9613Solver::calcTotalGroundAttenuation ( const OSpectreOctave Agr_s,
const OSpectreOctave Agr_r,
const OSpectreOctave Agr_m,
double  hs,
double  hr,
double  dp 
) const
protectedvirtual

Compute total ground attenuation Agr from region ground attenuations and geometric configuration.

Parameters
Agr_sGround attenuation spectrum in the "source region" in octave band
Agr_rGround attenuation spectrum in the "receiver region" in octave band
Agr_mGround attenuation spectrum in the "middle region" in octave band
hsHeight from ground of the source in meters
hrHeight from ground of the receiver in meters
dpDistance between source and receiver projected on an horizontal plane in meters
Returns
Total ground attenuation spectrum Agr

Reimplemented in TYChemin9613Solver2024.

Definition at line 224 of file TYChemin9613Solver.cpp.

Here is the caller graph for this function:

◆ computeBarAttenuation()

void TYChemin9613Solver::computeBarAttenuation ( const OSpectreOctave Dz,
const bool  vertical,
const bool  left 
)

Compute barrier attenuation on the path. It implements recommendation 5.5 of 17534-3 standard, or equivalently Eq. 16-17 of 9613-2:2024 standard. In addition to the parameters, the result is function of the attenuation of type ATTENUATION_GND_TOTAL. The result is stored as an attenuation of type ATTENUATION_BAR_TOP, or ATTENUATION_BAR_LEFT, or ATTENUATION_BAR_RIGHT.

Parameters
Dzthe spectrum of barrier attenuation
verticaltrue if the path is a top diffraction, false if the path is a lateral diffraction
leftin case of lateral diffraction, true if the path is a left diffraction, false if the path is a right diffraction

Definition at line 116 of file TYChemin9613Solver.cpp.

◆ getAttenuation()

OSpectreOctave & TYChemin9613Solver::getAttenuation ( const TYTypeAttenuation  type)

Return attenuation of the path of the type.

Returns
_attenuations[type]

Definition at line 151 of file TYChemin9613Solver.cpp.

Here is the caller graph for this function:

◆ operator!=()

bool TYChemin9613Solver::operator!= ( const TYChemin9613Solver other) const

Operator !=.

Definition at line 62 of file TYChemin9613Solver.cpp.

Here is the call graph for this function:

◆ operator=()

TYChemin9613Solver & TYChemin9613Solver::operator= ( const TYChemin9613Solver other)

Operator =.

Definition at line 34 of file TYChemin9613Solver.cpp.

Here is the call graph for this function:

◆ operator==()

bool TYChemin9613Solver::operator== ( const TYChemin9613Solver other) const

Operator ==.

Definition at line 45 of file TYChemin9613Solver.cpp.

Here is the caller graph for this function:

◆ setAttenuation()

void TYChemin9613Solver::setAttenuation ( const TYTypeAttenuation type,
const OSpectreOctave att 
)
inline

Set the atmospheric attenuation.

Definition at line 125 of file TYChemin9613Solver.h.

◆ setAttenuationBarWhenNoPath()

void TYChemin9613Solver::setAttenuationBarWhenNoPath ( bool  vertical,
bool  left 
)

Set attenuation bar to max to traduce the lack of diffracted ray on this path.

Definition at line 156 of file TYChemin9613Solver.cpp.

Member Data Documentation

◆ _attenuations

std::map<TYTypeAttenuation, OSpectreOctave> TYChemin9613Solver::_attenuations
protected

Attenuations spectra of the path.

Definition at line 173 of file TYChemin9613Solver.h.


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