WSF
WsfEM_GroundWavePropagation Class Reference

Ground wave propagation model. More...

#include <WsfEM_GroundWavePropagation.hpp>

Inheritance diagram for WsfEM_GroundWavePropagation:
Collaboration diagram for WsfEM_GroundWavePropagation:

Public Member Functions

 WsfEM_GroundWavePropagation ()
 WsfEM_GroundWavePropagation (const WsfEM_GroundWavePropagation &aSrc)
 ~WsfEM_GroundWavePropagation () override=default
WsfEM_GroundWavePropagationoperator= (const WsfEM_GroundWavePropagation &aRhs)=delete
WsfEM_PropagationClone () const override
bool ProcessInput (UtInput &aInput) override
double ComputePropagationFactor (WsfEM_Interaction &aInteraction, WsfEnvironment &aEnvironment) override
 computes the ground-wave propagation factor
Public Member Functions inherited from WsfEM_Propagation
 WsfEM_Propagation ()
 Constructor.
 ~WsfEM_Propagation () override=default
const char * GetScriptClassName () const override
bool DebugEnabled () const
 Is 'debug' enabled?
virtual bool Initialize (WsfEM_XmtrRcvr *aXmtrRcvrPtr)
virtual bool Initialize (WsfEM_Xmtr *aXmtrPtr)
bool ProcessInput (UtInput &aInput) override
virtual bool IsNullModel () const
Public Member Functions inherited from WsfObject
 WsfObject ()
 This is the constructor for the WsfObject class.
 ~WsfObject () override
 This is the destructor for the WsfObject class.
const char * GetScriptClassName () const override
const std::string & GetType () const
WsfStringId GetTypeId () const
 Get the string ID of the 'type' of the object.
void SetType (WsfStringId aType)
const std::string & GetBaseType () const
WsfStringId GetBaseTypeId () const
const TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (const WsfObject &aRhs)
 Assignment operator.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
const std::string & GetName () const
WsfStringId GetNameId () const
void SetName (WsfStringId aName)

Static Public Member Functions

static WsfEM_PropagationObjectFactory (const std::string &aTypeName)
 Factory method called by WsfEM_PropagationTypes.

Protected Member Functions

void SetupExponentialAtmosphere (double &aScale, double &aD1P0)
void ModifyValuesForVerticalPol (double aScale, double aD1P0, std::complex< double > &aImpedance, double &aD1P0V, std::complex< double > &aImpedanceV)
bool FarFieldTransmissionLoss (WsfEM_Interaction &aInteraction, double aScale, double aD1P0, std::complex< double > &aImpedance, double &aPropagationFactor)
void GeometricalOptics (WsfEM_Interaction &aInteraction, double aScale, double aD1P0, std::complex< double > &aImpedance, double &aPropagationFactor)
void Eigen (WsfEM_GroundWavePropagation *aPtr, int aMode, std::complex< double > &aImpedance, double aScale, double aD1P0, std::complex< double > aFid[9])
double BasicTransmissionLoss (WsfEM_Interaction &aInteraction)
double ComputeGroundDistance (WsfEM_Interaction &aInteraction)
void StartPropagation (WsfEM_GroundWavePropagation *aPtr, int aMode, std::complex< double > &aImpedance, double aScale, double aD1P0)
std::complex< double > PhaseIntegral (int aCode, std::complex< double > &aHeight, int aMode, double aScale)
void PFunctions (int aN, int aMode, double aScale, const std::complex< double > &aHeight)
void TurningPoint (double aScale, int aMode)
void Height (int aMode, double aScale, std::complex< double > &aReflection, std::complex< double > &aHeightGainFunction, double aHeightA, double aHeightB)
std::complex< double > WaveReflection (int aFunctionCode, int aCode, int aMode, double aScale, std::complex< double > &aHeight, std::complex< double > *aFunction)
 virtual protected
std::complex< double > WaveImpedanceFunction (int aFunctionCode, int aCode, int aMode, double aScale, std::complex< double > &aHeight, std::complex< double > *aFunction)
double FlatEarthPropagation (WsfEM_Interaction &aInteraction, double aScale, std::complex< double > &aImpedance, std::complex< double > aHeightLowC, std::complex< double > aHeightHighC)
void YCalculation (std::complex< double > aHeightLow, std::complex< double > aHeightHigh, double aScale, std::complex< double > aYd[7], std::complex< double > aYr[3][7])
void JCalculation (int aMaxN, std::complex< double > &aTau, std::complex< double > *aJ)
void JRCalculation (std::complex< double > &aTauP, std::complex< double > &aTauR, std::complex< double > aJrp[4][7])
std::complex< double > WFunction (std::complex< double > aZ)
std::complex< double > PhaseIntegralAB (int aCode, int aMode, double aScale, std::complex< double > &aHeightA, std::complex< double > &aHeightB)
std::complex< double > PhaseIntegralCombinations (int aCode, int aMode, double aScale, std::complex< double > aHeightLow, std::complex< double > aHeightHigh)
double DirectRayFunction (double aX, double aB, double aDistanceH, double aDistance)
void DirectRay (double aScale, double aD1P0, int aMode, std::complex< double > &aHeightLow, std::complex< double > &aHeightHigh, double aDistance, double aDistanceC, double aDistanceH, double aDistanceL, std::complex< double > aF[9], std::complex< double > aFdd[9], std::complex< double > aG[9])
Protected Member Functions inherited from WsfEM_Propagation
 WsfEM_Propagation (const WsfEM_Propagation &aSrc)
 Copy constructor.
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Static Protected Member Functions

static std::complex< double > Zxi (WsfEM_GroundWavePropagation *aPtr, int dummy, int dummy1, double dummy2, std::complex< double > &aX, std::complex< double > *aZ)
static std::complex< double > Zpsi (WsfEM_GroundWavePropagation *aPtr, int dummy, int dummy1, double dummy2, std::complex< double > &aY, std::complex< double > *aZ)
static void Integrate (WsfEM_GroundWavePropagation *aPtr, std::complex< double >(*aF)(WsfEM_GroundWavePropagation *, int, int, double, std::complex< double > &, std::complex< double > *), std::complex< double > *aYi, std::complex< double > *aYf, std::complex< double > aXi, std::complex< double > aXf, double aError2, double aStepIn, int aN, int aMode, double aScale, int aMStep)
static void IntegrationStep (WsfEM_GroundWavePropagation *aPtr, std::complex< double >(*aF)(WsfEM_GroundWavePropagation *, int, int, double, std::complex< double > &, std::complex< double > *), std::complex< double > *aY1, std::complex< double > *aY2, std::complex< double > aX1, std::complex< double > aH, int aMode, double aScale, int aN)
static std::complex< double > Hr (WsfEM_GroundWavePropagation *aPtr, int aCode, int aMode, double aScale, std::complex< double > &aHeight, std::complex< double > *aReflection)
static std::complex< double > HTau (WsfEM_GroundWavePropagation *aPtr, int aCode, int aMode, double aScale, std::complex< double > &aHeight, std::complex< double > *aHeightChangeFunction)
static std::complex< double > HrTau (WsfEM_GroundWavePropagation *aPtr, int aCode, int aMode, double aScale, std::complex< double > &aHeight, std::complex< double > *aFunction)
static std::complex< double > Hfi (WsfEM_GroundWavePropagation *aPtr, int aCode, int aMode, double aScale, std::complex< double > &aHeight, std::complex< double > *aFunction)
static std::complex< double > HfiTau (WsfEM_GroundWavePropagation *aPtr, int aCode, int aMode, double aScale, std::complex< double > &aHeight, std::complex< double > *aFunction)

Protected Attributes

double mRelativePermittivity
 relative permittivity of Earth's surface
double mConductivity
 conductivity of Earth's surface
double mTroposphereRefractivity
 troposphere refractivity
double mTroposphereHeightScale
 troposphere scale height (km's)
double mDel
 del - unknown
double mMinDistance
 minimum distance for computing transmission loss (km's)
double mDistanceInterval
 distance interval for computing transmission loss (km's)
double mWavenumber
 frequency wavenumber
double mWavenumberSquared
std::complex< double > mWavenumberImaginary
std::complex< double > mP
int mIntegrationPhase
 integration phase in Runge-Kutta integration
std::complex< double > mIntegrationStep
 integration step in Runge-Kutta integration
unsigned int mImpedanceCounter
 counter inside impedance function
std::complex< double > mImpedanceFunction [9]
std::complex< double > mReflectionFunction [9]
std::complex< double > mReflectionDerivativeFunction [9]
unsigned int mReflectionCounter
 counter inside reflection function
unsigned int mReflectionNF
std::complex< double > mP0 [9]
 function
std::complex< double > mTurningPoint [9]
 turning point
double mHeightChange [9]
 height change
std::complex< double > mDp [4]
 derivative of function P
double mXmtrAlt
 altitude of "transmitter"
double mRcvrAlt
 altitude of "receiver"
Protected Attributes inherited from WsfEM_Propagation
bool mDebugEnabled

Additional Inherited Members

Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.

Detailed Description

Ground wave propagation model.

Constructor & Destructor Documentation

◆ WsfEM_GroundWavePropagation() [1/2]

◆ WsfEM_GroundWavePropagation() [2/2]

◆ ~WsfEM_GroundWavePropagation()

WsfEM_GroundWavePropagation::~WsfEM_GroundWavePropagation ( )
overridedefault

Member Function Documentation

◆ BasicTransmissionLoss()

double WsfEM_GroundWavePropagation::BasicTransmissionLoss ( WsfEM_Interaction & aInteraction)
protected

compute basic transmission loss constant. assume perfectly-conducting ground near the aerials virtual protected

References WsfEM_Types::cPOL_HORIZONTAL, WsfEM_XmtrRcvr::GetPolarization(), WsfEM_Interaction::GetTransmitter(), mRcvrAlt, mWavenumber, mWavenumberSquared, and mXmtrAlt.

Referenced by FarFieldTransmissionLoss(), FlatEarthPropagation(), GeometricalOptics(), and operator=().

◆ Clone()

WsfEM_Propagation * WsfEM_GroundWavePropagation::Clone ( ) const
overridevirtual

Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.

Implements WsfEM_Propagation.

References WsfEM_GroundWavePropagation(), and WsfEM_Propagation::WsfEM_Propagation().

◆ ComputeGroundDistance()

double WsfEM_GroundWavePropagation::ComputeGroundDistance ( WsfEM_Interaction & aInteraction)
protected

◆ ComputePropagationFactor()

◆ DirectRay()

void WsfEM_GroundWavePropagation::DirectRay ( double aScale,
double aD1P0,
int aMode,
std::complex< double > & aHeightLow,
std::complex< double > & aHeightHigh,
double aDistance,
double aDistanceC,
double aDistanceH,
double aDistanceL,
std::complex< double > aF[9],
std::complex< double > aFdd[9],
std::complex< double > aG[9] )
protected

computes components of the direct ray before (m=0) or after (m=1) it has turned or the reflected ray (m=2) these components are used in stationary phase integration

References d3, d4, DirectRayFunction(), mDel, mP, mP0, mWavenumberImaginary, PFunctions(), PhaseIntegralCombinations(), and TurningPoint().

Referenced by GeometricalOptics(), and operator=().

◆ DirectRayFunction()

double WsfEM_GroundWavePropagation::DirectRayFunction ( double aX,
double aB,
double aDH,
double aD )
protected

implicit function inside DirectRay virtual protected

Referenced by DirectRay(), and operator=().

◆ Eigen()

void WsfEM_GroundWavePropagation::Eigen ( WsfEM_GroundWavePropagation * aPtr,
int aMode,
std::complex< double > & aImpedance,
double aScale,
double aD1P0,
std::complex< double > aFid[9] )
protected

compute propagation constant P0 and excitation factor Fid for the m-th mode virtual protected

References Hfi(), Hr(), Integrate(), mDp, mP, mP0, mTurningPoint, mWavenumberImaginary, mWavenumberSquared, PFunctions(), StartPropagation(), TurningPoint(), and WsfEM_GroundWavePropagation().

Referenced by FarFieldTransmissionLoss(), and operator=().

◆ FarFieldTransmissionLoss()

bool WsfEM_GroundWavePropagation::FarFieldTransmissionLoss ( WsfEM_Interaction & aInteraction,
double aScale,
double aD1P0,
std::complex< double > & aImpedance,
double & aPropagationFactor )
protected

computes the far-field propagation factor (<= 1.0) using the Residue series for elevated terminals virtual protected

References BasicTransmissionLoss(), ComputeGroundDistance(), Eigen(), Height(), mDel, mP0, mRcvrAlt, mWavenumber, mWavenumberImaginary, mWavenumberSquared, and mXmtrAlt.

Referenced by ComputePropagationFactor(), and operator=().

◆ FlatEarthPropagation()

double WsfEM_GroundWavePropagation::FlatEarthPropagation ( WsfEM_Interaction & aInteraction,
double aScale,
std::complex< double > & aImpedance,
std::complex< double > aHeightLowC,
std::complex< double > aHeightHighC )
protected

computes the field strength-distance variation for terminals close to the surface at short ranges. A series generalization of the Sommerfeld flat-earth theory is used virtual protected

References BasicTransmissionLoss(), ComputeGroundDistance(), JCalculation(), JRCalculation(), mDel, mDistanceInterval, mMinDistance, mWavenumber, and YCalculation().

Referenced by GeometricalOptics(), and operator=().

◆ GeometricalOptics()

void WsfEM_GroundWavePropagation::GeometricalOptics ( WsfEM_Interaction & aInteraction,
double aScale,
double aD1P0,
std::complex< double > & aImpedance,
double & aPropagationFactor )
protected

◆ Height()

void WsfEM_GroundWavePropagation::Height ( int aMode,
double aScale,
std::complex< double > & aReflection,
std::complex< double > & aHeightGainFunction,
double aHeightA,
double aHeightB )
protected

Height-gain function or logarithm of the wave function virtual protected

References HfiTau(), HrTau(), HTau(), Integrate(), mHeightChange, mP, mTurningPoint, mWavenumberImaginary, and PFunctions().

Referenced by FarFieldTransmissionLoss(), and operator=().

◆ Hfi()

std::complex< double > WsfEM_GroundWavePropagation::Hfi ( WsfEM_GroundWavePropagation * aPtr,
int aCode,
int aMode,
double aScale,
std::complex< double > & aHeight,
std::complex< double > * aFunction )
staticprotected

used as a stub to call WaveImpedanceFunction with appropriate values static

References WaveImpedanceFunction(), and WsfEM_GroundWavePropagation().

Referenced by Eigen(), and operator=().

◆ HfiTau()

std::complex< double > WsfEM_GroundWavePropagation::HfiTau ( WsfEM_GroundWavePropagation * aPtr,
int aCode,
int aMode,
double aScale,
std::complex< double > & aHeight,
std::complex< double > * aFunction )
staticprotected

used as a stub to call WaveImpedanceFunction with appropriate values static

References WaveImpedanceFunction(), and WsfEM_GroundWavePropagation().

Referenced by Height(), and operator=().

◆ Hr()

std::complex< double > WsfEM_GroundWavePropagation::Hr ( WsfEM_GroundWavePropagation * aPtr,
int aCode,
int aMode,
double aScale,
std::complex< double > & aHeight,
std::complex< double > * aReflection )
staticprotected

used as a stub to call WaveReflection with appropriate values static

References WaveReflection(), and WsfEM_GroundWavePropagation().

Referenced by Eigen(), and operator=().

◆ HrTau()

std::complex< double > WsfEM_GroundWavePropagation::HrTau ( WsfEM_GroundWavePropagation * aPtr,
int aCode,
int aMode,
double aScale,
std::complex< double > & aHeight,
std::complex< double > * aFunction )
staticprotected

used as a stub to call WaveReflection with appropriate values static

References WaveReflection(), and WsfEM_GroundWavePropagation().

Referenced by Height(), and operator=().

◆ HTau()

std::complex< double > WsfEM_GroundWavePropagation::HTau ( WsfEM_GroundWavePropagation * aPtr,
int aCode,
int aMode,
double aScale,
std::complex< double > & aHeight,
std::complex< double > * aHeightChangeFunction )
staticprotected

used as a stub to call WaveReflection with appropriate values static

References WaveReflection(), and WsfEM_GroundWavePropagation().

Referenced by Height(), and operator=().

◆ Integrate()

void WsfEM_GroundWavePropagation::Integrate ( WsfEM_GroundWavePropagation * aPtr,
std::complex< double >(* aF )(WsfEM_GroundWavePropagation *, int, int, double, std::complex< double > &, std::complex< double > *),
std::complex< double > * aYi,
std::complex< double > * aYf,
std::complex< double > aXi,
std::complex< double > aXf,
double aError2,
double aStepIn,
int aN,
int aMode,
double aScale,
int aMStep )
staticprotected

integrates the n first order differential equations dy/dx = f(j,x,y) where j=1,n and y is an n element array. The 4th order Runge-Kutta method is used The initial values are y=yi and x=xi and the final values are y=yf and x=xy static

loop until integration completed

References IntegrationStep(), mIntegrationPhase, mIntegrationStep, and WsfEM_GroundWavePropagation().

Referenced by Eigen(), Height(), operator=(), and StartPropagation().

◆ IntegrationStep()

void WsfEM_GroundWavePropagation::IntegrationStep ( WsfEM_GroundWavePropagation * aPtr,
std::complex< double >(* aF )(WsfEM_GroundWavePropagation *, int, int, double, std::complex< double > &, std::complex< double > *),
std::complex< double > * aY1,
std::complex< double > * aY2,
std::complex< double > aX1,
std::complex< double > aH,
int aMode,
double aScale,
int aN )
staticprotected

performs a single step of the 4th order Runge-Kutta method on the n first order differential equations dy/dx = f(j,x,y) where j=1,n and y is an n element array static

References WsfEM_GroundWavePropagation().

Referenced by Integrate(), and operator=().

◆ JCalculation()

void WsfEM_GroundWavePropagation::JCalculation ( int aMaxN,
std::complex< double > & aTau,
std::complex< double > * aJ )
protected

computes a set of functions J(m) (m=1,max) with arguement tau virtual protected

References WFunction().

Referenced by FlatEarthPropagation(), JRCalculation(), and operator=().

◆ JRCalculation()

void WsfEM_GroundWavePropagation::JRCalculation ( std::complex< double > & aTauP,
std::complex< double > & aTauR,
std::complex< double > aJrp[4][7] )
protected

computes the array jrp. each element is a combination of the error functions w(taup) and w(taur) virtual protected

References JCalculation().

Referenced by FlatEarthPropagation(), and operator=().

◆ ModifyValuesForVerticalPol()

void WsfEM_GroundWavePropagation::ModifyValuesForVerticalPol ( double aScale,
double aD1P0,
std::complex< double > & aSurfaceImpedance,
double & aD1P0V,
std::complex< double > & aSurfaceImpedanceV )
protected

modifies values for vertical polarization virtual protected

References mDel, mWavenumberImaginary, and mWavenumberSquared.

Referenced by ComputePropagationFactor(), and operator=().

◆ ObjectFactory()

WsfEM_Propagation * WsfEM_GroundWavePropagation::ObjectFactory ( const std::string & aTypeName)
static

◆ operator=()

◆ PFunctions()

void WsfEM_GroundWavePropagation::PFunctions ( int aN,
int aMode,
double aScale,
const std::complex< double > & aHeight )
protected

computes the function P and its first N derivatives Dp(m) (m=1,n) at complex height H. if n=0 only P is computed virtual protected

References mDel, mDp, mP, and mP0.

Referenced by DirectRay(), Eigen(), GeometricalOptics(), Height(), operator=(), PhaseIntegral(), PhaseIntegralAB(), TurningPoint(), WaveImpedanceFunction(), WaveReflection(), and YCalculation().

◆ PhaseIntegral()

std::complex< double > WsfEM_GroundWavePropagation::PhaseIntegral ( int aCode,
std::complex< double > & aHeight,
int aMode,
double aScale )
protected

computes the phase integral (code=1), its first (code=2) or second (code=3) derivative WRT mP0[m] from TurningPoint[m] to H virtual protected

References mDp, mP, mTurningPoint, mWavenumberImaginary, and PFunctions().

Referenced by GeometricalOptics(), operator=(), PhaseIntegralCombinations(), and StartPropagation().

◆ PhaseIntegralAB()

std::complex< double > WsfEM_GroundWavePropagation::PhaseIntegralAB ( int aCode,
int aMode,
double aScale,
std::complex< double > & aHeightA,
std::complex< double > & aHeightB )
protected

computes the phase integral (j=1), its first (j=2) or second (j=3) derivative WRT P0(m) from ha to hb. virtual protected

References mP, mWavenumberImaginary, and PFunctions().

Referenced by operator=(), and PhaseIntegralCombinations().

◆ PhaseIntegralCombinations()

std::complex< double > WsfEM_GroundWavePropagation::PhaseIntegralCombinations ( int aCode,
int aMode,
double aScale,
std::complex< double > aHeightLow,
std::complex< double > aHeightHigh )
protected

computes combinations of phase integrals used in DirectRay virtual protected

References mTurningPoint, PhaseIntegral(), and PhaseIntegralAB().

Referenced by DirectRay(), and operator=().

◆ ProcessInput()

bool WsfEM_GroundWavePropagation::ProcessInput ( UtInput & aInput)
overridevirtual

Process input from a generic source.

Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.

Parameters
aInputa reference to a UtInput object.
Returns
'true' if the command was one recognized by the class or 'false' if not.
Exceptions
UtInput::ExceptionBase(or an object derived from it) if the command was recognized but contains some sort of error.
Note
If a derived class does not recognize the command (i.e.: the return value is false) then it should call the base class ProcessInput method. This chain should continue until either the command is recognized or the top-level base class is encountered.

Reimplemented from WsfObject.

References mConductivity, mDistanceInterval, mMinDistance, mRelativePermittivity, mTroposphereHeightScale, mTroposphereRefractivity, and WsfEM_Propagation::ProcessInput().

◆ SetupExponentialAtmosphere()

void WsfEM_GroundWavePropagation::SetupExponentialAtmosphere ( double & aScale,
double & aD1P0 )
protected

Computes related parameters based on the ITU-R exponential atmosphere virtual protected

References mDel, mTroposphereHeightScale, and mTroposphereRefractivity.

Referenced by ComputePropagationFactor(), and operator=().

◆ StartPropagation()

void WsfEM_GroundWavePropagation::StartPropagation ( WsfEM_GroundWavePropagation * aPtr,
int aMode,
std::complex< double > & aImpedance,
double aScale,
double aD1P0 )
protected

computes an initial value for the propagation constant P0(m) derived from a uniform approximation based on airy integral functions (Langers method or the extended WKB approximation) virtual protected

References Integrate(), mHeightChange, mP0, mTurningPoint, mWavenumber, mWavenumberSquared, PhaseIntegral(), TurningPoint(), WsfEM_GroundWavePropagation(), Zpsi(), and Zxi().

Referenced by Eigen(), and operator=().

◆ TurningPoint()

void WsfEM_GroundWavePropagation::TurningPoint ( double aScale,
int aMode )
protected

computes the turning point H1[m] of the differential equation this is the solution of P(h) = 0 virtual protected

References mDel, mDp, mP, mP0, mTurningPoint, and PFunctions().

Referenced by DirectRay(), Eigen(), operator=(), and StartPropagation().

◆ WaveImpedanceFunction()

std::complex< double > WsfEM_GroundWavePropagation::WaveImpedanceFunction ( int aFunctionCode,
int aCode,
int aMode,
double aScale,
std::complex< double > & aHeight,
std::complex< double > * aFunction )
protected

function[0] is the wave impedance and function[2] is the height-gain function at height. these satisfy the first-order differential equations dfi[j]/dh = hfi(j,height,function) where j=1 or j=2 which are integrated in Integration virtual protected

References mImpedanceCounter, mImpedanceFunction, mIntegrationPhase, mIntegrationStep, mP, mReflectionNF, mWavenumberSquared, and PFunctions().

Referenced by Hfi(), HfiTau(), and operator=().

◆ WaveReflection()

std::complex< double > WsfEM_GroundWavePropagation::WaveReflection ( int aFunctionCode,
int aCode,
int aMode,
double aScale,
std::complex< double > & aHeight,
std::complex< double > * aFunction )
protected

◆ WFunction()

std::complex< double > WsfEM_GroundWavePropagation::WFunction ( std::complex< double > aZ)
protected

w(z) = exp(-z^2) * erfc(-i * z); virtual protected

Referenced by JCalculation(), and operator=().

◆ YCalculation()

void WsfEM_GroundWavePropagation::YCalculation ( std::complex< double > aHeightLowC,
std::complex< double > aHeightHighC,
double aScale,
std::complex< double > aYd[7],
std::complex< double > aYr[3][7] )
protected

computes arrays yd and yr virtual protected

References gamma, mDp, mP, mP0, mWavenumberImaginary, and PFunctions().

Referenced by FlatEarthPropagation(), and operator=().

◆ Zpsi()

std::complex< double > WsfEM_GroundWavePropagation::Zpsi ( WsfEM_GroundWavePropagation * aPtr,
int dummy,
int dummy1,
double dummy2,
std::complex< double > & aY,
std::complex< double > * aZ )
staticprotected

dummy value required to maintain commonality with other functions being integrated in Runge-Kutta static

References WsfEM_GroundWavePropagation().

Referenced by operator=(), and StartPropagation().

◆ Zxi()

std::complex< double > WsfEM_GroundWavePropagation::Zxi ( WsfEM_GroundWavePropagation * aPtr,
int dummy,
int dummy1,
double dummy2,
std::complex< double > & aX,
std::complex< double > * aZ )
staticprotected

dummy value required to maintain commonality with other functions being integrated in Runge-Kutta static

References WsfEM_GroundWavePropagation().

Referenced by operator=(), and StartPropagation().

Member Data Documentation

◆ mConductivity

double WsfEM_GroundWavePropagation::mConductivity
protected

◆ mDel

◆ mDistanceInterval

double WsfEM_GroundWavePropagation::mDistanceInterval
protected

distance interval for computing transmission loss (km's)

Referenced by FlatEarthPropagation(), GeometricalOptics(), ProcessInput(), WsfEM_GroundWavePropagation(), and WsfEM_GroundWavePropagation().

◆ mDp

std::complex<double> WsfEM_GroundWavePropagation::mDp[4]
protected

◆ mHeightChange

double WsfEM_GroundWavePropagation::mHeightChange[9]
protected

◆ mImpedanceCounter

unsigned int WsfEM_GroundWavePropagation::mImpedanceCounter
protected

counter inside impedance function

Referenced by WaveImpedanceFunction(), WsfEM_GroundWavePropagation(), and WsfEM_GroundWavePropagation().

◆ mImpedanceFunction

std::complex<double> WsfEM_GroundWavePropagation::mImpedanceFunction[9]
protected

◆ mIntegrationPhase

int WsfEM_GroundWavePropagation::mIntegrationPhase
protected

integration phase in Runge-Kutta integration

Referenced by Integrate(), WaveImpedanceFunction(), WaveReflection(), WsfEM_GroundWavePropagation(), and WsfEM_GroundWavePropagation().

◆ mIntegrationStep

std::complex<double> WsfEM_GroundWavePropagation::mIntegrationStep
protected

integration step in Runge-Kutta integration

Referenced by Integrate(), WaveImpedanceFunction(), WaveReflection(), WsfEM_GroundWavePropagation(), and WsfEM_GroundWavePropagation().

◆ mMinDistance

double WsfEM_GroundWavePropagation::mMinDistance
protected

minimum distance for computing transmission loss (km's)

Referenced by FlatEarthPropagation(), GeometricalOptics(), ProcessInput(), WsfEM_GroundWavePropagation(), and WsfEM_GroundWavePropagation().

◆ mP

◆ mP0

◆ mRcvrAlt

double WsfEM_GroundWavePropagation::mRcvrAlt
protected

◆ mReflectionCounter

unsigned int WsfEM_GroundWavePropagation::mReflectionCounter
protected

counter inside reflection function

Referenced by WaveReflection(), WsfEM_GroundWavePropagation(), and WsfEM_GroundWavePropagation().

◆ mReflectionDerivativeFunction

std::complex<double> WsfEM_GroundWavePropagation::mReflectionDerivativeFunction[9]
protected

◆ mReflectionFunction

std::complex<double> WsfEM_GroundWavePropagation::mReflectionFunction[9]
protected

◆ mReflectionNF

unsigned int WsfEM_GroundWavePropagation::mReflectionNF
protected

◆ mRelativePermittivity

double WsfEM_GroundWavePropagation::mRelativePermittivity
protected

relative permittivity of Earth's surface

Referenced by ComputePropagationFactor(), ProcessInput(), WsfEM_GroundWavePropagation(), and WsfEM_GroundWavePropagation().

◆ mTroposphereHeightScale

double WsfEM_GroundWavePropagation::mTroposphereHeightScale
protected

◆ mTroposphereRefractivity

double WsfEM_GroundWavePropagation::mTroposphereRefractivity
protected

◆ mTurningPoint

std::complex<double> WsfEM_GroundWavePropagation::mTurningPoint[9]
protected

◆ mWavenumber

◆ mWavenumberImaginary

◆ mWavenumberSquared

◆ mXmtrAlt

double WsfEM_GroundWavePropagation::mXmtrAlt
protected

The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved