WSF
WsfEM_FastMultipath.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFEM_FASTMULTIPATH_HPP
13#define WSFEM_FASTMULTIPATH_HPP
14
15#include "wsf_export.h"
16
17#include <complex>
18
19#include "WsfEM_Antenna.hpp"
20#include "WsfEM_Interaction.hpp"
21#include "WsfEM_Propagation.hpp"
22#include "WsfEM_Types.hpp"
23class WsfEM_XmtrRcvr;
24
27{
28public:
32 ~WsfEM_FastMultipath() override;
33
34 static WsfEM_Propagation* ObjectFactory(const std::string& aTypeName);
35
36 WsfEM_Propagation* Clone() const override;
37
38 double ComputePropagationFactor(WsfEM_Interaction& aInteraction, WsfEnvironment& aEnvironment) override;
39
40 virtual double ComputeReflectionGain(WsfEM_XmtrRcvr* aXmtrRcvrPtr,
41 const WsfEM_Interaction::BeamData& aBeamData,
42 const WsfEM_Interaction::RelativeData& aRelTgtLoc,
43 double aDepressionAngle,
44 double aFrequency,
45 WsfEM_Types::Polarization aPolarization);
46
47 bool ProcessInput(UtInput& aInput) override;
48
49 void SetSoilMoistureFraction(double aSoilMoistureFraction);
50 void SetSurfaceRoughness(double aSurfaceRoughness);
51
52 static void ComputeReflectionCoefficient(double aGrazingAngle,
53 const std::complex<double>& aDielectricConstant,
54 WsfEM_Types::Polarization aPolarization,
55 double& aMagnitude,
56 double& aPhaseShift);
57
58 static bool ComputeReflectionGeometry(double aEarthRadius,
59 double aAntHeight,
60 double aTgtSlantRange,
61 double aTgtElevation,
62 double& aAntToRefSlantRange,
63 double& aRefToTgtSlantRange,
64 double& aDepressionAngle,
65 double& aGrazingAngle,
66 double& aPathLengthDifference);
67
68 static void GetSoilDielectricConstant(double aFrequency,
69 double aMoistureFraction,
70 std::complex<double>& aDielectricConstant);
71
72private:
73 double mSoilMoistureFraction;
74 double mSurfaceRoughness;
75};
76
77#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
static void GetSoilDielectricConstant(double aFrequency, double aMoistureFraction, std::complex< double > &aDielectricConstant)
Definition WsfEM_FastMultipath.cpp:533
void SetSurfaceRoughness(double aSurfaceRoughness)
Definition WsfEM_FastMultipath.cpp:293
WsfEM_FastMultipath()
Definition WsfEM_FastMultipath.cpp:35
static bool ComputeReflectionGeometry(double aEarthRadius, double aAntHeight, double aTgtSlantRange, double aTgtElevation, double &aAntToRefSlantRange, double &aRefToTgtSlantRange, double &aDepressionAngle, double &aGrazingAngle, double &aPathLengthDifference)
Definition WsfEM_FastMultipath.cpp:368
void SetSoilMoistureFraction(double aSoilMoistureFraction)
Definition WsfEM_FastMultipath.cpp:287
static WsfEM_Propagation * ObjectFactory(const std::string &aTypeName)
Factory method called by WsfEM_PropagationTypes.
Definition WsfEM_FastMultipath.cpp:55
virtual double ComputeReflectionGain(WsfEM_XmtrRcvr *aXmtrRcvrPtr, const WsfEM_Interaction::BeamData &aBeamData, const WsfEM_Interaction::RelativeData &aRelTgtLoc, double aDepressionAngle, double aFrequency, WsfEM_Types::Polarization aPolarization)
Definition WsfEM_FastMultipath.cpp:218
static void ComputeReflectionCoefficient(double aGrazingAngle, const std::complex< double > &aDielectricConstant, WsfEM_Types::Polarization aPolarization, double &aMagnitude, double &aPhaseShift)
Definition WsfEM_FastMultipath.cpp:308
WsfEM_FastMultipath & operator=(const WsfEM_FastMultipath &aRhs)=delete
Definition WsfEM_Interaction.hpp:68
WsfEM_Propagation()
Constructor.
Definition WsfEM_Propagation.cpp:20
virtual double ComputePropagationFactor(WsfEM_Interaction &aInteraction, WsfEnvironment &aEnvironment)=0
bool ProcessInput(UtInput &aInput) override
Definition WsfEM_Propagation.cpp:57
WsfEM_Propagation * Clone() const override=0
Definition WsfEM_XmtrRcvr.hpp:42
Definition WsfEnvironment.hpp:37
Polarization
Polarization of the electromagnetic wave.
Definition WsfEM_Types.hpp:21
Represents the antenna gain lookup.
Definition WsfEM_Interaction.hpp:130
Definition WsfEM_Interaction.hpp:116
Copyrights Multiple, All Rights Reserved