12#ifndef WSFGENAP_ANTENNAPATTERN_HPP
13#define WSFGENAP_ANTENNAPATTERN_HPP
102 void GeneratePattern();
104 void ComputeApertureWeights(
double aWavelength);
106 void ComputeCrudePattern(
double aWavelength);
108 void PatternComplexFourierTransform(
const double* aWeightingFunction,
109 int aNumApertureSamples,
110 double aApertureLength,
111 int aNumOutputSamples,
113 double aAngleSpacing,
114 double* aGainPattern);
116 void PatternFourierTransform(
const double* aWeightingFunction,
118 double aApertureLength,
119 int aNumOutputSamples,
121 double aAngleSpacing,
123 double* aGainPattern);
125 void CalculateBeamwidth(
Distribution aDistributionFunction,
128 double aAngularSpacing,
129 const double* aAntennaPattern,
131 double& aMaxSidelobe,
132 double& aSidelobePosition,
133 double& aNullPosition);
135 void ComputeApertureSize(
double aBeamwidth,
double aSidelobeLevelDB,
double aWavelength,
double& aApertureSize);
137 void ApertureDistribution(
Distribution aDistributionFunction,
140 double aApertureSize,
142 double aSidelobeLevelDB,
144 double* aWeightingFunction);
146 void ModifyApertureDistribution(
double* aXAxisDistribution,
148 const double* aYAxisDistribution,
154 double* aModifiedXDistribution);
156 double IlluminationEfficiency(
double* aXAxisDistribution,
158 const double* aYAxisDistribution,
165 void CosecantBeam(
double aExponent,
167 double aApertureSize,
169 double* aRealPattern,
170 double* aImagPattern,
171 double& aEfficiency);
173 void CosecantRolloff(
int aVectorSize,
174 double aMinimumAngle,
175 double aAngularSpacing,
180 void CosecantFix(
int aVectorSize,
double aAngularSpacing,
double& aMinimumAngle,
double* aPattern);
182 double InterpolatedValue(
const double* aVector,
int aNumPoints,
double aX);
184 void VectorReplace(
int aVectorSize,
const double* aInputVector,
double* aOutputVector);
186 void VectorProduct(
int aVectorSize,
const double* aFirstVector,
const double* aSecondVector,
double* aOutputVector);
188 double ZSum(
int aVectorSize,
const double* aVector);
190 void TaylorOne(
double aSidelobeRatio,
int aVectorSize,
double* aDistribution);
192 double BetaFunction(
double aBeta);
194 double ZeroBessel(
double aX);
196 double KFactor(
Distribution aDistribution,
double aExponent);
198 double Energy(
int aNum,
const double* aRealPattern,
const double* aImagPattern);
Data that is shared amongst all instances of a given ALARM antenna pattern.
Definition WsfALARM_AntennaPattern.hpp:60
ApertureShape
Definition WsfALARM_AntennaPattern.hpp:50
WsfALARM_AntennaPattern(ALARM_Data *aBaseDataPtr)
Definition WsfALARM_AntennaPattern.cpp:27
BaseData * mSharedDataPtr
Definition WsfAntennaPattern.hpp:123
WsfAntennaPattern()
Definition WsfAntennaPattern.cpp:25
Data that is shared amongst all instances of a given ALARM antenna pattern.
Definition WsfGENAP_AntennaPattern.hpp:55
double mAzExponent
Definition WsfGENAP_AntennaPattern.hpp:75
double mAzSidelobePosition
Definition WsfGENAP_AntennaPattern.hpp:82
GENAP_Data()
Definition WsfGENAP_AntennaPattern.cpp:57
double mAzBlockage
Definition WsfGENAP_AntennaPattern.hpp:81
@ cNELMAX
Definition WsfGENAP_AntennaPattern.hpp:60
@ cNAZMAX
Definition WsfGENAP_AntennaPattern.hpp:59
double mApertureHeight
Definition WsfGENAP_AntennaPattern.hpp:99
int mAzSamples
Definition WsfGENAP_AntennaPattern.hpp:78
double mElBlockageWeights[cNELMAX]
Definition WsfGENAP_AntennaPattern.hpp:92
double mAzSidelobeLevel
Definition WsfGENAP_AntennaPattern.hpp:77
double mElRotation
Definition WsfGENAP_AntennaPattern.hpp:85
~GENAP_Data() override=default
Distribution mElDistribution
Definition WsfGENAP_AntennaPattern.hpp:71
bool Initialize(WsfAntennaPattern &aAntennaPattern) override
Definition WsfGENAP_AntennaPattern.cpp:103
int mElSamples
Definition WsfGENAP_AntennaPattern.hpp:90
double mElSidelobeLevel
Definition WsfGENAP_AntennaPattern.hpp:88
Distribution mAzDistribution
Definition WsfGENAP_AntennaPattern.hpp:70
BlockageShape mBlockageShape
Definition WsfGENAP_AntennaPattern.hpp:73
double mApertureWidth
Definition WsfGENAP_AntennaPattern.hpp:98
double mElSidelobePosition
Definition WsfGENAP_AntennaPattern.hpp:95
double mElSidelobeLevelInput
Definition WsfGENAP_AntennaPattern.hpp:87
double mAzBlockageWeights[cNAZMAX]
Definition WsfGENAP_AntennaPattern.hpp:80
double mAzSidelobeLevelInput
Definition WsfGENAP_AntennaPattern.hpp:76
double mElCosecantLimit
Definition WsfGENAP_AntennaPattern.hpp:89
double mElNullPosition
Definition WsfGENAP_AntennaPattern.hpp:96
double mElWeights[cNELMAX]
Definition WsfGENAP_AntennaPattern.hpp:91
bool ProcessInput(WsfAntennaPattern &aPattern, UtInput &aInput) override
Definition WsfGENAP_AntennaPattern.cpp:174
double mAzNullPosition
Definition WsfGENAP_AntennaPattern.hpp:83
double mElBlockage
Definition WsfGENAP_AntennaPattern.hpp:93
double mElExponent
Definition WsfGENAP_AntennaPattern.hpp:86
double mAzWeights[cNAZMAX]
Definition WsfGENAP_AntennaPattern.hpp:79
double mElEfficiency
Definition WsfGENAP_AntennaPattern.hpp:94
WsfGENAP_AntennaPattern operator=(const WsfGENAP_AntennaPattern &aRhs) const
Assignment is not supported.
double GetElSidelobeLevelInput() const
Definition WsfGENAP_AntennaPattern.hpp:220
bool ProcessInput(UtInput &aInput) override
Definition WsfGENAP_AntennaPattern.cpp:46
Distribution GetElDistribution() const
Definition WsfGENAP_AntennaPattern.hpp:215
double GetAzExponent() const
Definition WsfGENAP_AntennaPattern.hpp:216
WsfGENAP_AntennaPattern()
Definition WsfGENAP_AntennaPattern.cpp:20
Distribution GetAzDistribution() const
Definition WsfGENAP_AntennaPattern.hpp:214
ApertureShape GetApertureShape() const override
Definition WsfGENAP_AntennaPattern.hpp:213
WsfGENAP_AntennaPattern(const WsfGENAP_AntennaPattern &aSrc)=default
double GetAzSidelobeLevelInput() const
Definition WsfGENAP_AntennaPattern.hpp:219
double GetElCosecantLimit() const
Definition WsfGENAP_AntennaPattern.hpp:218
Distribution
Illumination distribution function.
Definition WsfGENAP_AntennaPattern.hpp:37
@ cDF_COSINE
Definition WsfGENAP_AntennaPattern.hpp:40
@ cDF_UNIFORM
Definition WsfGENAP_AntennaPattern.hpp:39
@ cDF_COSECANT
Definition WsfGENAP_AntennaPattern.hpp:41
@ cDF_UNKNOWN
Definition WsfGENAP_AntennaPattern.hpp:38
@ cDF_BW_SLL
Definition WsfGENAP_AntennaPattern.hpp:42
double GetElExponent() const
Definition WsfGENAP_AntennaPattern.hpp:217
WsfAntennaPattern * Clone() const override
Definition WsfGENAP_AntennaPattern.cpp:40
static WsfAntennaPattern * ObjectFactory(const std::string &aTypeName)
Definition WsfGENAP_AntennaPattern.cpp:29
BlockageShape
aperture blockage shape
Definition WsfGENAP_AntennaPattern.hpp:47
@ cBS_RECTANGULAR
Definition WsfGENAP_AntennaPattern.hpp:50
@ cBS_ELLIPTICAL
Definition WsfGENAP_AntennaPattern.hpp:49
@ cBS_NONE
Definition WsfGENAP_AntennaPattern.hpp:48
@ cBS_DIAMOND
Definition WsfGENAP_AntennaPattern.hpp:51