FERS 1.0.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
antenna::Isotropic Class Referencefinal

Represents an isotropic antenna with uniform gain in all directions. More...

#include "antenna_factory.h"

+ Inheritance diagram for antenna::Isotropic:
+ Collaboration diagram for antenna::Isotropic:

Public Member Functions

 Isotropic (const std::string_view name)
 Constructs an Isotropic antenna with the given name.
 
 ~Isotropic () override=default
 
 Isotropic (const Isotropic &)=delete
 
Isotropicoperator= (const Isotropic &)=delete
 
 Isotropic (Isotropic &&)=delete
 
Isotropicoperator= (Isotropic &&)=delete
 
RealType getGain (const math::SVec3 &, const math::SVec3 &, RealType) const override
 Computes the gain of the isotropic antenna.
 
RealType getEfficiencyFactor () const noexcept
 Retrieves the efficiency factor of the antenna.
 
std::string getName () const noexcept
 Retrieves the name of the antenna.
 
virtual RealType getNoiseTemperature (const math::SVec3 &) const noexcept
 Computes the noise temperature of the antenna based on the angle.
 
void setEfficiencyFactor (RealType loss) noexcept
 Sets the efficiency factor of the antenna.
 

Static Protected Member Functions

static RealType getAngle (const math::SVec3 &angle, const math::SVec3 &refangle) noexcept
 Computes the angle between the input and reference angles.
 

Detailed Description

Represents an isotropic antenna with uniform gain in all directions.

This class models an ideal isotropic antenna, which has a directivity of 1 (0 dB).

Definition at line 119 of file antenna_factory.h.

Constructor & Destructor Documentation

◆ Isotropic() [1/3]

antenna::Isotropic::Isotropic ( const std::string_view  name)
explicit

Constructs an Isotropic antenna with the given name.

Parameters
nameThe name of the antenna.

Definition at line 127 of file antenna_factory.h.

127: Antenna(name.data()) {}
Antenna(std::string name) noexcept
Constructs an Antenna object with the given name.

◆ ~Isotropic()

antenna::Isotropic::~Isotropic ( )
overridedefault

◆ Isotropic() [2/3]

antenna::Isotropic::Isotropic ( const Isotropic )
delete

◆ Isotropic() [3/3]

antenna::Isotropic::Isotropic ( Isotropic &&  )
delete

Member Function Documentation

◆ getAngle()

RealType antenna::Antenna::getAngle ( const math::SVec3 angle,
const math::SVec3 refangle 
)
staticprotectednoexceptinherited

Computes the angle between the input and reference angles.

Parameters
angleThe input angle.
refangleThe reference angle.
Returns
The computed angle.

Definition at line 93 of file antenna_factory.cpp.

94 {
95 SVec3 normangle(angle);
96 normangle.length = 1;
97 return std::acos(dotProduct(Vec3(normangle), Vec3(refangle)));
98 }
A class representing a vector in spherical coordinates.
A class representing a vector in rectangular coordinates.
RealType dotProduct(const Vec3 &a, const Vec3 &b) noexcept
Computes the dot product of two Vec3 vectors.

References math::SVec3::length.

◆ getEfficiencyFactor()

RealType antenna::Antenna::getEfficiencyFactor ( ) const
noexceptinherited

Retrieves the efficiency factor of the antenna.

Returns
The efficiency factor of the antenna.

Definition at line 73 of file antenna_factory.h.

73{ return _loss_factor; }

Referenced by getGain(), antenna::XmlAntenna::getGain(), antenna::H5Antenna::getGain(), and antenna::to_json().

+ Here is the caller graph for this function:

◆ getGain()

RealType antenna::Isotropic::getGain ( const math::SVec3 ,
const math::SVec3 ,
RealType   
) const
overridevirtual

Computes the gain of the isotropic antenna.

Returns
The gain of the antenna, which is equal to the efficiency factor.

Implements antenna::Antenna.

Definition at line 144 of file antenna_factory.h.

146 {
147 // David Young: Isotropic antennas have a directivity of 1 (or 0 dB),
148 // therefore, the gain of the antenna is the efficiency factor
149 return getEfficiencyFactor();
150 }
RealType getEfficiencyFactor() const noexcept
Retrieves the efficiency factor of the antenna.

References antenna::Antenna::getEfficiencyFactor().

+ Here is the call graph for this function:

◆ getName()

std::string antenna::Antenna::getName ( ) const
noexceptinherited

Retrieves the name of the antenna.

Returns
The name of the antenna.

Definition at line 80 of file antenna_factory.h.

80{ return _name; }

Referenced by antenna::to_json(), radar::to_json(), and radar::to_json().

+ Here is the caller graph for this function:

◆ getNoiseTemperature()

virtual RealType antenna::Antenna::getNoiseTemperature ( const math::SVec3 ) const
virtualnoexceptinherited

Computes the noise temperature of the antenna based on the angle.

Parameters
angleThe angle at which the noise temperature is to be computed.
Returns
The noise temperature of the antenna.

Definition at line 89 of file antenna_factory.h.

89{ return 0; }

◆ operator=() [1/2]

Isotropic & antenna::Isotropic::operator= ( const Isotropic )
delete

◆ operator=() [2/2]

Isotropic & antenna::Isotropic::operator= ( Isotropic &&  )
delete

◆ setEfficiencyFactor()

void antenna::Antenna::setEfficiencyFactor ( RealType  loss)
noexceptinherited

Sets the efficiency factor of the antenna.

Parameters
lossThe new efficiency factor.

Definition at line 84 of file antenna_factory.cpp.

85 {
86 if (loss > 1)
87 {
88 LOG(Level::INFO, "Using greater than unity antenna efficiency.");
89 }
90 _loss_factor = loss;
91 }
#define LOG(level,...)
Definition logging.h:19

References LOG.


The documentation for this class was generated from the following file: