WSF
WsfDirectedEnergyWeapon::Beam Class Reference

#include <WsfDirectedEnergyWeapon.hpp>

Inheritance diagram for WsfDirectedEnergyWeapon::Beam:
Collaboration diagram for WsfDirectedEnergyWeapon::Beam:

Public Member Functions

 Beam ()
 Beam (const Beam &aSrc)
Beamoperator= (const Beam &)=delete
 ~Beam () override=default
bool ProcessInput (UtInput &aInput) override
void Initialize ()
 Initialize the beam structure elements to initial values.
virtual void Propagate (double)
BeamClone () const override
 Clone this object.
double GetPeakFluence () const
 Return the peak fluence (i.e., the peak irradiance on target integrated over time).
void SetPeakFluence (double aPeakFluence)
 Set the peak fluence, in W/m^2.
double GetEdgeFluence () const
void SetEdgeFluence (double aEdgeFluence)
 Set the edge fluence, in W/m^2.
double GetEdgeRadius () const
 Return the edge radius (i.e., the radius at which the edge fluence is calculated).
void SetEdgeRadius (double aEdgeRadius)
 Set the edge radius (i.e., the radius at which the edge fluence is calculated).
double GetSemiMinorAxis () const
 Same as GetEdgeRadius, above.
void SetSpotRadius (double aRadius)
 Set the spot radius, which for an elliptical spot is the same as the semi-minor axis.
double GetSpotRadius () const
 Return the spot radius, which for an elliptical spot is the same as the semi-minor axis.
double GetSemiMajorAxis () const
virtual double GetIncidenceAngle () const
 Return the spot orientation angle.
virtual void SetIncidenceAngle (double aIncidenceAngle)
 Set the incidence angle of the beam on target, with respect to the normal to the target's surface at the spot center.
virtual double GetWavelength () const
 Return the characteristic wavelength of the beam.
unsigned GetWavelength_nm () const
 Return the characteristic wavelength of the beam as a string in nm.
virtual void SetWavelength (double aWavelength)
 Set the characteristic wavelength.
virtual double GetApertureDiameter () const
 Return the diameter of the exit aperture of the beam producing the spot.
virtual void SetApertureDiameter (double aApertureDiameter)
 Set the diameter of the aperture through which the beam exits (m^2).
virtual double GetInitialPower () const
 Return the initial power of the beam before any losses.
virtual void SetInitialPower (double aInitialPower)
 Set initial power of the beam before any losses.
double GetPeakIrradiance () const
 Return the average irradiance.
void SetPeakIrradiance (double aPeakIrradiance)
 Set the peak irradiance (W/m^2).
double GetAverageIrradiance () const
 Return the average irradiance over the beam spot (W/m2).
void SetAverageIrradiance (double aAverageIrradiance)
 Set the average irradiance over the beam spot.
double GetEdgeIrradiance () const
 Return the average irradiance over the beam spot (W/m2).
void SetEdgeIrradiance (double aEdgeIrradiance)
 Set the average irradiance over the beam spot.
virtual double GetPulseRepetitionFrequency () const
 Return the Pulse Repetition Frequency.
virtual void SetPulseRepetitionFrequency (double aPRF)
 Set the pulse repetition frequency.
virtual double GetPulseWidth () const
 Return the Pulse Width.
virtual void SetPulseWidth (double aPulseWidth)
 Set the pulse width (0 == CW).
virtual double GetEnergyDensity () const
double GetEnergy () const
 Return the total energy (i.e., the average irradiance on target integrated over time and area; J).
void SetEnergy (double aEnergy)
 Set the energy deposited during the engagement in the beam spot (J).
double GetAveragePower () const
 Return the average power on target, integrated over the beam spot.
void SetAveragePower (double aAveragePower)
 Set the average power on target, integrated over the beam spot.
void GetOffsetLocationECS (double aLocationECS[3]) const
 Get the beam's offset location in target entity coordinates.
void SetOffsetLocationECS (const double aLocationECS[3])
 Set the beam's offset location in target entity coordinates.
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)

Additional Inherited Members

Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Detailed Description

A representation of a directed energy "beam," suitable for HEL modeling.

Note
Directed Energy Weapons may be modeled either as single-beam or multiple beam. This beam class assumes a single beam (such as for HEL). Beam spots are assumed Gaussian in shape.

Constructor & Destructor Documentation

◆ Beam() [1/2]

◆ Beam() [2/2]

WsfDirectedEnergyWeapon::Beam::Beam ( const Beam & aSrc)

References Beam(), and WsfObject::WsfObject().

◆ ~Beam()

WsfDirectedEnergyWeapon::Beam::~Beam ( )
overridedefault

Member Function Documentation

◆ Clone()

Beam * WsfDirectedEnergyWeapon::Beam::Clone ( ) const
inlineoverridevirtual

Clone this object.

Implements WsfObject.

Reimplemented in WsfDefaultHEL, and WsfHighEnergyLaser.

References Beam().

◆ GetApertureDiameter()

virtual double WsfDirectedEnergyWeapon::Beam::GetApertureDiameter ( ) const
inlinevirtual

Return the diameter of the exit aperture of the beam producing the spot.

Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired().

◆ GetAverageIrradiance()

double WsfDirectedEnergyWeapon::Beam::GetAverageIrradiance ( ) const
inline

Return the average irradiance over the beam spot (W/m2).

◆ GetAveragePower()

double WsfDirectedEnergyWeapon::Beam::GetAveragePower ( ) const
inline

Return the average power on target, integrated over the beam spot.

Referenced by wsf::event::utils::GetAdditionalDE_Info(), and wsf::event::utilsCSV::GetAdditionalDE_Info().

◆ GetEdgeFluence()

double WsfDirectedEnergyWeapon::Beam::GetEdgeFluence ( ) const
inline

Return the edge fluence (i.e., the irradiance at the damage radius) whichever is smaller.

◆ GetEdgeIrradiance()

double WsfDirectedEnergyWeapon::Beam::GetEdgeIrradiance ( ) const
inline

Return the average irradiance over the beam spot (W/m2).

Referenced by wsf::event::utils::GetAdditionalDE_Info(), and wsf::event::utilsCSV::GetAdditionalDE_Info().

◆ GetEdgeRadius()

double WsfDirectedEnergyWeapon::Beam::GetEdgeRadius ( ) const
inline

Return the edge radius (i.e., the radius at which the edge fluence is calculated).

Referenced by wsf::event::utils::GetAdditionalDE_Info(), and wsf::event::utilsCSV::GetAdditionalDE_Info().

◆ GetEnergy()

double WsfDirectedEnergyWeapon::Beam::GetEnergy ( ) const
inline

Return the total energy (i.e., the average irradiance on target integrated over time and area; J).

Referenced by WsfHEL_Lethality::ApplyEffectTo(), WsfHEL_Lethality::CalcInterceptPk(), wsf::event::utils::GetAdditionalDE_Info(), wsf::event::utilsCSV::GetAdditionalDE_Info(), and WsfDisDirectedEnergyFire::Process().

◆ GetEnergyDensity()

double WsfDirectedEnergyWeapon::Beam::GetEnergyDensity ( ) const
virtual

Return the energy density in the beam, which is defined to be the integrated energy divided by the spot area.

Referenced by WsfHEL_Lethality::ApplyEffectTo(), wsf::event::utils::GetAdditionalDE_Info(), and wsf::event::utilsCSV::GetAdditionalDE_Info().

◆ GetIncidenceAngle()

virtual double WsfDirectedEnergyWeapon::Beam::GetIncidenceAngle ( ) const
inlinevirtual

◆ GetInitialPower()

virtual double WsfDirectedEnergyWeapon::Beam::GetInitialPower ( ) const
inlinevirtual

Return the initial power of the beam before any losses.

◆ GetOffsetLocationECS()

void WsfDirectedEnergyWeapon::Beam::GetOffsetLocationECS ( double aLocationECS[3]) const

Get the beam's offset location in target entity coordinates.

Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired(), and WsfDisWeaponEvents::DirectedEnergyWeaponHit().

◆ GetPeakFluence()

double WsfDirectedEnergyWeapon::Beam::GetPeakFluence ( ) const
inline

Return the peak fluence (i.e., the peak irradiance on target integrated over time).

◆ GetPeakIrradiance()

double WsfDirectedEnergyWeapon::Beam::GetPeakIrradiance ( ) const
inline

◆ GetPulseRepetitionFrequency()

virtual double WsfDirectedEnergyWeapon::Beam::GetPulseRepetitionFrequency ( ) const
inlinevirtual

Return the Pulse Repetition Frequency.

Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired().

◆ GetPulseWidth()

virtual double WsfDirectedEnergyWeapon::Beam::GetPulseWidth ( ) const
inlinevirtual

Return the Pulse Width.

Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired().

◆ GetSemiMajorAxis()

double WsfDirectedEnergyWeapon::Beam::GetSemiMajorAxis ( ) const

Return the "semi-major axis" of the beam on the target, defined to be the radius of the spot divided by the cosine of the incidence angle.

Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired(), wsf::event::utils::GetAdditionalDE_Info(), wsf::event::utilsCSV::GetAdditionalDE_Info(), and WsfDisDirectedEnergyFire::Process().

◆ GetSemiMinorAxis()

◆ GetSpotRadius()

double WsfDirectedEnergyWeapon::Beam::GetSpotRadius ( ) const
inline

Return the spot radius, which for an elliptical spot is the same as the semi-minor axis.

◆ GetWavelength()

virtual double WsfDirectedEnergyWeapon::Beam::GetWavelength ( ) const
inlinevirtual

Return the characteristic wavelength of the beam.

Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired().

◆ GetWavelength_nm()

unsigned WsfDirectedEnergyWeapon::Beam::GetWavelength_nm ( ) const
inline

Return the characteristic wavelength of the beam as a string in nm.

◆ Initialize()

void WsfDirectedEnergyWeapon::Beam::Initialize ( )

Initialize the beam structure elements to initial values.

◆ operator=()

Beam & WsfDirectedEnergyWeapon::Beam::operator= ( const Beam & )
delete

References Beam().

◆ ProcessInput()

bool WsfDirectedEnergyWeapon::Beam::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.

Reimplemented in WsfDefaultHEL, and WsfHighEnergyLaser.

References SetApertureDiameter(), SetInitialPower(), and SetWavelength().

◆ Propagate()

virtual void WsfDirectedEnergyWeapon::Beam::Propagate ( double )
inlinevirtual

Propagate the beam to the target.

Note
This method's signature may be changed in the future.

Reimplemented in WsfDefaultHEL, and WsfHighEnergyLaser.

◆ SetApertureDiameter()

virtual void WsfDirectedEnergyWeapon::Beam::SetApertureDiameter ( double aApertureDiameter)
inlinevirtual

Set the diameter of the aperture through which the beam exits (m^2).

Referenced by WsfDisDirectedEnergyFire::Process(), ProcessInput(), and WsfHighEnergyLaser::ProcessInput().

◆ SetAverageIrradiance()

void WsfDirectedEnergyWeapon::Beam::SetAverageIrradiance ( double aAverageIrradiance)
inline

Set the average irradiance over the beam spot.

◆ SetAveragePower()

void WsfDirectedEnergyWeapon::Beam::SetAveragePower ( double aAveragePower)
inline

Set the average power on target, integrated over the beam spot.

◆ SetEdgeFluence()

void WsfDirectedEnergyWeapon::Beam::SetEdgeFluence ( double aEdgeFluence)
inline

Set the edge fluence, in W/m^2.

◆ SetEdgeIrradiance()

void WsfDirectedEnergyWeapon::Beam::SetEdgeIrradiance ( double aEdgeIrradiance)
inline

Set the average irradiance over the beam spot.

◆ SetEdgeRadius()

void WsfDirectedEnergyWeapon::Beam::SetEdgeRadius ( double aEdgeRadius)
inline

Set the edge radius (i.e., the radius at which the edge fluence is calculated).

◆ SetEnergy()

void WsfDirectedEnergyWeapon::Beam::SetEnergy ( double aEnergy)
inline

Set the energy deposited during the engagement in the beam spot (J).

Referenced by WsfDisDirectedEnergyFire::Process().

◆ SetIncidenceAngle()

void WsfDirectedEnergyWeapon::Beam::SetIncidenceAngle ( double aIncidenceAngle)
virtual

Set the incidence angle of the beam on target, with respect to the normal to the target's surface at the spot center.

Referenced by WsfDisDirectedEnergyFire::Process(), and WsfHighEnergyLaser::UpdateEngagementGeometry().

◆ SetInitialPower()

virtual void WsfDirectedEnergyWeapon::Beam::SetInitialPower ( double aInitialPower)
inlinevirtual

Set initial power of the beam before any losses.

Referenced by ProcessInput(), and WsfHighEnergyLaser::ProcessInput().

◆ SetOffsetLocationECS()

void WsfDirectedEnergyWeapon::Beam::SetOffsetLocationECS ( const double aLocationECS[3])

Set the beam's offset location in target entity coordinates.

◆ SetPeakFluence()

void WsfDirectedEnergyWeapon::Beam::SetPeakFluence ( double aPeakFluence)
inline

Set the peak fluence, in W/m^2.

◆ SetPeakIrradiance()

void WsfDirectedEnergyWeapon::Beam::SetPeakIrradiance ( double aPeakIrradiance)
inline

Set the peak irradiance (W/m^2).

Referenced by WsfDisDirectedEnergyFire::Process().

◆ SetPulseRepetitionFrequency()

virtual void WsfDirectedEnergyWeapon::Beam::SetPulseRepetitionFrequency ( double aPRF)
inlinevirtual

Set the pulse repetition frequency.

Referenced by WsfDisDirectedEnergyFire::Process().

◆ SetPulseWidth()

virtual void WsfDirectedEnergyWeapon::Beam::SetPulseWidth ( double aPulseWidth)
inlinevirtual

Set the pulse width (0 == CW).

Referenced by WsfDisDirectedEnergyFire::Process().

◆ SetSpotRadius()

void WsfDirectedEnergyWeapon::Beam::SetSpotRadius ( double aRadius)
inline

Set the spot radius, which for an elliptical spot is the same as the semi-minor axis.

Referenced by WsfDisDirectedEnergyFire::Process().

◆ SetWavelength()

void WsfDirectedEnergyWeapon::Beam::SetWavelength ( double aWavelength)
virtual

Set the characteristic wavelength.

Referenced by WsfDisDirectedEnergyFire::Process(), ProcessInput(), and WsfHighEnergyLaser::ProcessInput().


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