|
WSF
|
#include <WsfDirectedEnergyWeapon.hpp>


Public Member Functions | |
| Beam () | |
| Beam (const Beam &aSrc) | |
| Beam & | operator= (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) |
| Beam * | Clone () 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 TypeList & | GetTypeList () const |
| bool | IsA_TypeOf (WsfStringId aType) const |
| WsfObject & | operator= (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< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
A representation of a directed energy "beam," suitable for HEL modeling.
| WsfDirectedEnergyWeapon::Beam::Beam | ( | ) |
References WsfObject::WsfObject().
Referenced by Beam(), Clone(), operator=(), WsfHighEnergyLaser::WsfHighEnergyLaser(), and WsfHighEnergyLaser::WsfHighEnergyLaser().
| WsfDirectedEnergyWeapon::Beam::Beam | ( | const Beam & | aSrc | ) |
References Beam(), and WsfObject::WsfObject().
|
overridedefault |
|
inlineoverridevirtual |
Clone this object.
Implements WsfObject.
Reimplemented in WsfDefaultHEL, and WsfHighEnergyLaser.
References Beam().
|
inlinevirtual |
Return the diameter of the exit aperture of the beam producing the spot.
Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired().
|
inline |
Return the average irradiance over the beam spot (W/m2).
|
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().
|
inline |
Return the edge fluence (i.e., the irradiance at the damage radius) whichever is smaller.
|
inline |
Return the average irradiance over the beam spot (W/m2).
Referenced by wsf::event::utils::GetAdditionalDE_Info(), and wsf::event::utilsCSV::GetAdditionalDE_Info().
|
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().
|
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().
|
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().
|
inlinevirtual |
Return the spot orientation angle.
Reimplemented in WsfHighEnergyLaser.
Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired(), wsf::event::utils::GetAdditionalDE_Info(), and wsf::event::utilsCSV::GetAdditionalDE_Info().
|
inlinevirtual |
Return the initial power of the beam before any losses.
| 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().
|
inline |
Return the peak fluence (i.e., the peak irradiance on target integrated over time).
|
inline |
Return the average irradiance.
Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired(), wsf::event::utils::GetAdditionalDE_Info(), and wsf::event::utilsCSV::GetAdditionalDE_Info().
|
inlinevirtual |
Return the Pulse Repetition Frequency.
Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired().
|
inlinevirtual |
Return the Pulse Width.
Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired().
| 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().
|
inline |
Same as GetEdgeRadius, above.
Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired(), WsfDisWeaponEvents::DirectedEnergyWeaponHit(), wsf::event::utils::GetAdditionalDE_Info(), wsf::event::utilsCSV::GetAdditionalDE_Info(), and WsfDisDirectedEnergyFire::Process().
|
inline |
Return the spot radius, which for an elliptical spot is the same as the semi-minor axis.
|
inlinevirtual |
Return the characteristic wavelength of the beam.
Referenced by WsfDisWeaponEvents::DirectedEnergyWeaponFired().
|
inline |
Return the characteristic wavelength of the beam as a string in nm.
| void WsfDirectedEnergyWeapon::Beam::Initialize | ( | ) |
Initialize the beam structure elements to initial values.
|
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'.
| aInput | a reference to a UtInput object. |
| UtInput::ExceptionBase | (or an object derived from it) if the command was recognized but contains some sort of error. |
Reimplemented from WsfObject.
Reimplemented in WsfDefaultHEL, and WsfHighEnergyLaser.
References SetApertureDiameter(), SetInitialPower(), and SetWavelength().
|
inlinevirtual |
Propagate the beam to the target.
Reimplemented in WsfDefaultHEL, and WsfHighEnergyLaser.
|
inlinevirtual |
Set the diameter of the aperture through which the beam exits (m^2).
Referenced by WsfDisDirectedEnergyFire::Process(), ProcessInput(), and WsfHighEnergyLaser::ProcessInput().
|
inline |
Set the average irradiance over the beam spot.
|
inline |
Set the average power on target, integrated over the beam spot.
|
inline |
Set the edge fluence, in W/m^2.
|
inline |
Set the average irradiance over the beam spot.
|
inline |
Set the edge radius (i.e., the radius at which the edge fluence is calculated).
|
inline |
Set the energy deposited during the engagement in the beam spot (J).
Referenced by WsfDisDirectedEnergyFire::Process().
|
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().
|
inlinevirtual |
Set initial power of the beam before any losses.
Referenced by ProcessInput(), and WsfHighEnergyLaser::ProcessInput().
| void WsfDirectedEnergyWeapon::Beam::SetOffsetLocationECS | ( | const double | aLocationECS[3] | ) |
Set the beam's offset location in target entity coordinates.
|
inline |
Set the peak fluence, in W/m^2.
|
inline |
Set the peak irradiance (W/m^2).
Referenced by WsfDisDirectedEnergyFire::Process().
|
inlinevirtual |
Set the pulse repetition frequency.
Referenced by WsfDisDirectedEnergyFire::Process().
|
inlinevirtual |
Set the pulse width (0 == CW).
Referenced by WsfDisDirectedEnergyFire::Process().
|
inline |
Set the spot radius, which for an elliptical spot is the same as the semi-minor axis.
Referenced by WsfDisDirectedEnergyFire::Process().
|
virtual |
Set the characteristic wavelength.
Referenced by WsfDisDirectedEnergyFire::Process(), ProcessInput(), and WsfHighEnergyLaser::ProcessInput().