A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::CircularApertureAntennaModel Class Reference

Circular Aperture Antenna Model. More...

#include "circular-aperture-antenna-model.h"

+ Inheritance diagram for ns3::CircularApertureAntennaModel:
+ Collaboration diagram for ns3::CircularApertureAntennaModel:

Public Member Functions

 CircularApertureAntennaModel ()=default
 
 ~CircularApertureAntennaModel () override=default
 
double GetApertureRadius () const
 Return the antenna aperture radius.
 
double GetGainDb (Angles a) override
 Get the gain in dB, using Bessel equation of first kind and first order.
 
double GetMaxGain () const
 Return the antenna max gain.
 
double GetMinGain () const
 Return the antenna min gain.
 
double GetOperatingFrequency () const
 Return the antenna operating frequency.
 
void SetApertureRadius (double aMeter)
 Set the antenna aperture radius.
 
void SetMaxGain (double gainDb)
 Set the antenna max gain.
 
void SetMinGain (double gainDb)
 Set the antenna min gain.
 
void SetOperatingFrequency (double freqHz)
 Set the antenna operating frequency.
 
- Public Member Functions inherited from ns3::AntennaModel
 AntennaModel ()
 
 ~AntennaModel () override
 
virtual double GetGainDb (Angles a)=0
 this method is expected to be re-implemented by each antenna model
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor.
 
 ~Object () override
 Destructor.
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together.
 
void Dispose ()
 Dispose of this Object.
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object.
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object.
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId.
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object.
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one.
 
bool IsInitialized () const
 Check if the object has been initialized.
 
void UnidirectionalAggregateObject (Ptr< Object > other)
 Aggregate an Object to another Object.
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful.
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors.
 
virtual TypeId GetInstanceTypeId () const =0
 Get the most derived TypeId for this Object.
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful.
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors.
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context.
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context.
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context.
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context.
 

Static Public Member Functions

static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::AntennaModel
static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID.
 

Private Attributes

double m_apertureRadiusMeter
 antenna aperture radius in meters
 
double m_maxGain
 antenna gain in dB towards the main orientation
 
double m_minGain
 antenna min gain in dB
 
double m_operatingFrequencyHz
 antenna operating frequency in Hz
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object.
 
virtual void DoDispose ()
 Destructor implementation.
 
virtual void DoInitialize ()
 Initialize() implementation.
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated.
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes.
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed.
 

Detailed Description

Circular Aperture Antenna Model.

This class implements the circular aperture antenna as described in 3GPP 38.811 6.4.1 https://www.3gpp.org/ftp/Specs/archive/38_series/38.811 without the cosine approximation, thanks to the Bessel functions introduced in C++17. Spherical coordinates are used, in particular of the azimuth and inclination angles. All working parameters can be set, namely: operating frequency, aperture radius, maximum and minimum gain. Since Clang libc++ does not support the Mathematical special functions (P0226R1) yet, this class falls back to Boost's implementation of cyl_bessel_j whenever the above standard library is in use. If neither is available in the host system, this class is not compiled.

Definition at line 47 of file circular-aperture-antenna-model.h.

Constructor & Destructor Documentation

◆ CircularApertureAntennaModel()

ns3::CircularApertureAntennaModel::CircularApertureAntennaModel ( )
default

◆ ~CircularApertureAntennaModel()

ns3::CircularApertureAntennaModel::~CircularApertureAntennaModel ( )
overridedefault

Member Function Documentation

◆ GetApertureRadius()

double ns3::CircularApertureAntennaModel::GetApertureRadius ( ) const

Return the antenna aperture radius.

Returns
the antenna radius in meters

Definition at line 92 of file circular-aperture-antenna-model.cc.

References m_apertureRadiusMeter.

◆ GetGainDb()

double ns3::CircularApertureAntennaModel::GetGainDb ( Angles  a)
overridevirtual

Get the gain in dB, using Bessel equation of first kind and first order.

Parameters
athe angle at which the gain need to be calculated with respect to the antenna bore sight
Returns
the antenna gain at the specified Angles a

Implements ns3::AntennaModel.

Definition at line 138 of file circular-aperture-antenna-model.cc.

References ns3::Angles::GetAzimuth(), ns3::Angles::GetInclination(), m_apertureRadiusMeter, m_maxGain, m_minGain, m_operatingFrequencyHz, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ GetMaxGain()

double ns3::CircularApertureAntennaModel::GetMaxGain ( ) const

Return the antenna max gain.

Returns
the antenna max gain in dB

Definition at line 119 of file circular-aperture-antenna-model.cc.

References m_maxGain.

◆ GetMinGain()

double ns3::CircularApertureAntennaModel::GetMinGain ( ) const

Return the antenna min gain.

Returns
the antenna min gain in dB

Definition at line 132 of file circular-aperture-antenna-model.cc.

References m_minGain.

◆ GetOperatingFrequency()

double ns3::CircularApertureAntennaModel::GetOperatingFrequency ( ) const

Return the antenna operating frequency.

Returns
the antenna operating frequency, in Hz

Definition at line 106 of file circular-aperture-antenna-model.cc.

References m_operatingFrequencyHz.

◆ GetTypeId()

TypeId ns3::CircularApertureAntennaModel::GetTypeId ( )
static

Register this type.

Returns
The object TypeId.

Definition at line 53 of file circular-aperture-antenna-model.cc.

References ns3::MakeDoubleAccessor(), SetApertureRadius(), SetMaxGain(), SetMinGain(), SetOperatingFrequency(), and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

◆ SetApertureRadius()

void ns3::CircularApertureAntennaModel::SetApertureRadius ( double  aMeter)

Set the antenna aperture radius.

Sets the antenna operating frequency, asserting that the provided value is within the acceptable range [0, +inf[.

Parameters
aMeterthe strictly positive antenna radius in meters

Definition at line 84 of file circular-aperture-antenna-model.cc.

References m_apertureRadiusMeter, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetMaxGain()

void ns3::CircularApertureAntennaModel::SetMaxGain ( double  gainDb)

Set the antenna max gain.

Parameters
gainDbthe antenna max gain in dB

Definition at line 112 of file circular-aperture-antenna-model.cc.

References m_maxGain, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetMinGain()

void ns3::CircularApertureAntennaModel::SetMinGain ( double  gainDb)

Set the antenna min gain.

Parameters
gainDbthe antenna min gain in dB

Definition at line 125 of file circular-aperture-antenna-model.cc.

References m_minGain, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetOperatingFrequency()

void ns3::CircularApertureAntennaModel::SetOperatingFrequency ( double  freqHz)

Set the antenna operating frequency.

Sets the antenna operating frequency, asserting that the provided value is within the acceptable range [0, +inf[.

Parameters
freqHzthe strictly positive antenna operating frequency, in Hz

Definition at line 98 of file circular-aperture-antenna-model.cc.

References m_operatingFrequencyHz, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_apertureRadiusMeter

double ns3::CircularApertureAntennaModel::m_apertureRadiusMeter
private

antenna aperture radius in meters

Definition at line 132 of file circular-aperture-antenna-model.h.

Referenced by GetApertureRadius(), GetGainDb(), and SetApertureRadius().

◆ m_maxGain

double ns3::CircularApertureAntennaModel::m_maxGain
private

antenna gain in dB towards the main orientation

Definition at line 134 of file circular-aperture-antenna-model.h.

Referenced by GetGainDb(), GetMaxGain(), and SetMaxGain().

◆ m_minGain

double ns3::CircularApertureAntennaModel::m_minGain
private

antenna min gain in dB

Definition at line 135 of file circular-aperture-antenna-model.h.

Referenced by GetGainDb(), GetMinGain(), and SetMinGain().

◆ m_operatingFrequencyHz

double ns3::CircularApertureAntennaModel::m_operatingFrequencyHz
private

antenna operating frequency in Hz

Definition at line 133 of file circular-aperture-antenna-model.h.

Referenced by GetGainDb(), GetOperatingFrequency(), and SetOperatingFrequency().


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