15#ifndef WSFATMOSPHERICTURBULENCE_HPP
16#define WSFATMOSPHERICTURBULENCE_HPP
18#include "wsf_mil_export.h"
23#include "UtIntegrand.hpp"
35 using CN2_Ftn = std::function<double(
double)>;
44 double operator()(
double aHeight)
const {
return mCN2_Ftn(aHeight); }
67 double BeamSpreadAngle(
double aSlantRange,
double aTargetHeight,
double aPlatformHeight,
double aWavelength);
71 class TurbulentBeamSpreadIntegrand :
public UtIntegrand
74 TurbulentBeamSpreadIntegrand(
double aSlantRange,
76 double aPlatformHeight,
79 double Function(
double aVal)
override;
82 TurbulentBeamSpreadIntegrand() =
delete;
86 double mPlatformHeight;
105 static double hv57(
double aHeight);
An abstract base class for sensor_plot function.
Definition Function.hpp:29
WsfObjectTypeList(WsfScenario &aScenario, unsigned int aFlags, const std::string &aBlockName)
Definition WsfObjectTypeList.hpp:76
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
const std::string & GetCN2Form()
Definition WsfAtmosphericTurbulence.cpp:96
virtual bool ProcessInput(UtInput &aInput)
Definition WsfAtmosphericTurbulence.cpp:144
AtmosphericTurbulence(const WsfScenario &aScenario)
Definition WsfAtmosphericTurbulence.cpp:67
const CN2 & GetCN2()
Definition WsfAtmosphericTurbulence.cpp:111
double BeamSpreadAngle(double aSlantRange, double aTargetHeight, double aPlatformHeight, double aWavelength)
Definition WsfAtmosphericTurbulence.cpp:127
void SetCN2Form(const std::string &aCN2Form)
Definition WsfAtmosphericTurbulence.cpp:101
virtual ~AtmosphericTurbulence()=default
CN2_Types(WsfScenario &aScenario)
Definition WsfAtmosphericTurbulence.cpp:173
static WSF_MIL_EXPORT CN2_Types & Get(WsfScenario &aScenario)
Return a modifiable reference to the type list associated with the specified scenario.
Definition WsfAtmosphericTurbulence.cpp:160
An encapsulation of a turbulent CN2 model.
Definition WsfAtmosphericTurbulence.hpp:33
WsfObject * Clone() const override
Definition WsfAtmosphericTurbulence.hpp:42
CN2(const CN2_Ftn &aCN2_Ftn)
Definition WsfAtmosphericTurbulence.hpp:37
double operator()(double aHeight) const
Definition WsfAtmosphericTurbulence.hpp:44
std::function< double(double)> CN2_Ftn
Definition WsfAtmosphericTurbulence.hpp:35
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32