12#ifndef WSFEM_ITU_ATTENUATION_HPP
13#define WSFEM_ITU_ATTENUATION_HPP
15#include "wsf_export.h"
20#include "UtAtmosphere.hpp"
57 double aEarthRadiusMultiplier,
61 ComputeGasSpecificAttenuation(
double aFrequency,
double aPressure,
double aTemperature,
double aWaterVaporDensity);
63 static double ComputeCloudSpecificAttenuation(
double aFrequency,
double aTemperature,
double aWaterDensity);
65 static double ComputeRainSpecificAttenuation(
double aFrequency,
WsfEM_Types::Polarization aPolarization,
double aRainRate);
67 static void PlotGasFigure1();
68 static void PlotGasFigure2();
69 static void PlotGasFigure3();
71 static void PlotCloudFigure1();
74 static void ComputeAtmosphereData(UtAtmosphere& aAtmosphere,
78 double& aWaterVaporDensity);
83 UtAtmosphere mAtmosphere;
94 std::vector<Point> mGammaTable;
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfEM_Attenuation()
Definition WsfEM_Attenuation.cpp:25
virtual double ComputeAttenuationFactor(WsfEM_Interaction &aInteraction, WsfEnvironment &aEnvironment, WsfEM_Interaction::Geometry aGeometry)
Definition WsfEM_Attenuation.cpp:94
bool ProcessInput(UtInput &aInput) override
Definition WsfEM_Attenuation.cpp:66
WsfEM_Attenuation * Clone() const override=0
WsfEM_ITU_Attenuation & operator=(const WsfEM_ITU_Attenuation &aRhs)=delete
bool AcceptsInlineBlockInput() const override
Definition WsfEM_ITU_Attenuation.hpp:45
WsfEM_ITU_Attenuation(const UtAtmosphere &aAtm)
Definition WsfEM_ITU_Attenuation.cpp:72
static std::function< WsfEM_Attenuation *(const std::string &)> GetObjectFactory(WsfScenario &aScenario)
Definition WsfEM_ITU_Attenuation.cpp:64
Definition WsfEM_Interaction.hpp:68
Geometry
Definition WsfEM_Interaction.hpp:93
Definition WsfEnvironment.hpp:37
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Polarization
Polarization of the electromagnetic wave.
Definition WsfEM_Types.hpp:21