10 #ifndef TYMPAN__ENTITIES_H__INCLUDED
11 #define TYMPAN__ENTITIES_H__INCLUDED
167 double gaussianSpectrum(
double const k,
double const sigma,
double const lc);
168 double trapz(std::vector<double> u, std::vector<double> integrande);
281 double calculC(
double distance);
315 double compute_q(
int ka_idx,
int theta_idx,
double ka,
double theta);
357 double compute_q(
int indice_Ka,
int indice_theta,
double ka,
double theta);
Class for the definition of atmospheric conditions.
Describes building material.
AcousticBuildingMaterial(const string &name_, const ComplexSpectrum &spectrum)
Constructor.
virtual ~AcousticBuildingMaterial()
Destructor.
ComplexSpectrum asEyring() const
Returns a spectrum with Eyring formulae.
virtual ComplexSpectrum get_absorption(double incidence_angle, double length)
: Get material absorption at reflection point
ComplexSpectrum spectrum
Spectrum to store acoustic values at different frequencies.
Describes the ground material, a specific AcousticBuildingMaterial.
double get_ISO9613_G()
Absorption given by ISO9613.
ComplexSpectrum K
Wave number.
void sgn_G_computation(const ComplexSpectrum &localW, ComplexSpectrum &G)
void computeW(double angle, double length, const ComplexSpectrum &Zs, ComplexSpectrum &W)
Compute numeric distance.
void set_length(double length_)
Set wave length.
void computeZs(double angle, ComplexSpectrum Z, ComplexSpectrum &spectrum)
Compute specific impedance.
void set_deviation(double deviation_)
Set deviation.
TYComplex erfcCas1(const TYComplex &wValue) const
: Functions used in Fw computation
void computeZc()
Compute characteristic impedance.
static AtmosphericConditions * atmosphere
Pointer to current atmosphere.
void limit_W_values(ComplexSpectrum &localW)
ComplexSpectrum Zf
Effective impedance.
double trapz(std::vector< double > u, std::vector< double > integrande)
double gaussianSpectrum(double const k, double const sigma, double const lc)
virtual ~AcousticGroundMaterial()
Destructor.
TYComplex erfcCas2(const TYComplex &wValue) const
AcousticGroundMaterial(const string &name_, double resistivity_, double deviation_, double length_, double factor_g_)
Constructor.
void set_thickness(double thickness_)
Set thickness.
static void set_atmosphere(AtmosphericConditions *atmosphere_)
Set pointer to current atmosphere.
const ComplexSpectrum & get_K() const
Get wave number.
virtual ComplexSpectrum get_absorption(double incidence_angle, double length)
Get material absorption at reflection point.
void computeK()
Compute wave number.
ComplexSpectrum Zc
Characteristic impedance.
TYComplex erfcCas3(const TYComplex &wValue) const
TYComplex sgnReIm(const TYComplex &W, const TYComplex &G) const
: function used in G computation
void computeFw(ComplexSpectrum localW, ComplexSpectrum &Fw)
Compute function of numeric distance.
const ComplexSpectrum & get_Zc() const
Get characteristic impedance.
void erfc_G_computation(const ComplexSpectrum &localW, ComplexSpectrum &G)
void computeZf(double angle, ComplexSpectrum Zs)
Compute effective impedance in rough ground.
void computeRp(double angle, const ComplexSpectrum &Zs, ComplexSpectrum &Rp)
Compute reflection coefficient for plane waves.
void computeQ(double angle, ComplexSpectrum &Rp, ComplexSpectrum &Fw, ComplexSpectrum &Q)
Compute reflection coefficient.
bool compare(const string &name, double resistivity, double deviation, double length, double factor_g)
Compare this AcousticGroundMaterial to another one.
string name
Material name.
AcousticMaterialBase(const string &name_)
Constructor.
virtual double get_ISO9613_G()
virtual ComplexSpectrum get_absorption(double incidence_angle, double length)
Virtual method to return material absorption at reflection point.
Describes an acoustic receptor.
AcousticReceptor(const Point &position_)
Constructor to build a receptor defined by the its position.
Point position
Destructor.
virtual ~AcousticReceptor()
Describes an acoustic source.
AcousticSource(const Point &point_, const Spectrum &spectrum_, SourceDirectivityInterface *directivity)
Constructor to build a source defined by a point, spectrum, directivity.
string volume_id
Volume id.
SourceDirectivityInterface * directivity
Pointer to the source directivity.
Spectrum spectrum
Associated spectrum.
Point position
Destructor.
virtual ~AcousticSource()
node_idx n[3]
Triangle vertexes.
shared_ptr< AcousticMaterialBase > made_of
Pointer to the material.
AcousticTriangle(node_idx n1, node_idx n2, node_idx n3)
Constructor with the 3 vertexes of the triangle.
string volume_id
Volume id.
Directivity for a baffled face.
static const double _tabKa[NB_KA]
virtual Spectrum lwAdjustment(Vector direction, double distance)
Directivity of a baffled face source.
double compute_q(int indice_Ka, int indice_theta, double ka, double theta)
static const double _tabQ[NB_KA][NB_THETA]
~BaffledFaceDirectivity()
Destructor.
int find_Ka_idx(double ka)
BaffledFaceDirectivity(const Vector &support_normal_, double support_size_)
Constructor.
The base of all entity classes.
Directivity for a chimney face.
virtual Spectrum lwAdjustment(Vector direction, double distance)
Directivity of a chimney face source.
static const double _tabQ[NB_KA][NB_THETA]
ChimneyFaceDirectivity(const Vector &support_normal_, double support_size_)
Constructor.
double compute_q(int ka_idx, int theta_idx, double ka, double theta)
~ChimneyFaceDirectivity()
Destructor.
BaseEntity class for directivity on face.
static AtmosphericConditions * atmosphere
Characteristic size of support face.
double support_size
Normal of support face.
CommonFaceDirectivity(const Vector &support_normal_, double support_size_)
Constructor.
static void set_atmosphere(AtmosphericConditions *atmosphere_)
~CommonFaceDirectivity()
Destructor.
virtual ~DirectivityCoefficient()
DirectivityCoefficient(double value_, double theta_, double phi_, bool solid_angle_)
Constructor.
virtual ~GlobalContribution()
Interface for source directivity classes (SphericalSourceDirectivity, CommonFaceDirectivity,...
virtual Spectrum lwAdjustment(Vector direction, double distance)=0
< Pure virtual method to return directivity of the Source
Directivity for a spherical source.
virtual Spectrum lwAdjustment(Vector direction, double distance)
Directivity of a spherical source.
SphericalSourceDirectivity()
Directivity for a volume face.
double calculC(double distance)
Compute directivity factor.
~VolumeFaceDirectivity()
Destructor.
VolumeFaceDirectivity(const Vector &support_normal_, double support_size_)
Constructor.
virtual Spectrum lwAdjustment(Vector direction, double distance)
Directivity of a volume face.
static const double _tabRA[]
RA form factor.
static const double _tabCor[]
Correction factors.
Common utilities and includes for all data models.
#define NB_KA
Number of KA values in the array.
#define NB_THETA
Number of theta values in the array.
std::complex< double > TYComplex
OSpectreComplex ComplexSpectrum
std::deque< AcousticSource > source_pool_t
Array of sources.
Point ComputeAcousticCentroid(const source_pool_t &tabSources_)
std::deque< AcousticReceptor > receptor_pool_t
Array of receptors.
std::deque< material_ptr_t > material_pool_t
shared_ptr< AcousticMaterialBase > material_ptr_t
std::deque< AcousticTriangle > triangle_pool_t
Array of AcousticTriangle.