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

Class implementing Uniform Planar Array (UPA) model. More...

#include "uniform-planar-array.h"

+ Inheritance diagram for ns3::UniformPlanarArray:
+ Collaboration diagram for ns3::UniformPlanarArray:

Public Member Functions

 UniformPlanarArray ()
 Constructor.
 
 ~UniformPlanarArray () override
 Destructor.
 
uint16_t ArrayIndexFromPortIndex (uint16_t portIndex, uint16_t subElementIndex) const override
 Maps element within a port to an index of element within the antenna array.
 
double GetAntennaHorizontalSpacing () const
 Get the horizontal spacing for the antenna elements of the phased array.
 
double GetAntennaVerticalSpacing () const
 Get the vertical spacing for the antenna elements of the phased array.
 
std::pair< double, doubleGetElementFieldPattern (Angles a, uint8_t polIndex=0) const override
 Returns the horizontal and vertical components of the antenna element field pattern at the specified direction and for the specified polarization.
 
Vector GetElementLocation (uint64_t index) const override
 Returns the location of the antenna element with the specified index assuming the left bottom corner is (0,0,0), normalized with respect to the wavelength.
 
uint8_t GetElemPol (size_t elemIndex) const override
 Returns the index of polarization to which belongs the antenna element with a specific index.
 
size_t GetHElemsPerPort () const override
 Get the number of horizontal elements belonging to each port.
 
uint32_t GetNumColumns () const override
 Get the number of columns of the phased array.
 
size_t GetNumElems () const override
 Returns the number of total antenna elements.
 
size_t GetNumElemsPerPort () const override
 Get the total number of elements belonging to each port.
 
uint16_t GetNumHorizontalPorts () const override
 Get the number of horizontal antenna ports.
 
uint8_t GetNumPols () const override
 Returns the number of polarizations, 2 in the case that the antenna is dual-polarized, otherwise 1.
 
uint16_t GetNumPorts () const override
 Get the total number of antenna ports.
 
uint32_t GetNumRows () const override
 Get the number of rows of the phased array.
 
uint16_t GetNumVerticalPorts () const override
 Get the number of vertical antenna ports.
 
double GetPolSlant () const override
 Returns polarization angle of first polarization.
 
size_t GetVElemsPerPort () const override
 Get the number of vertical elements belonging to each port.
 
bool IsDualPol () const override
 Check if an antenna array contains dual-polarized elements.
 
void SetAlpha (double alpha)
 Set the bearing angle This method sets the bearing angle and computes its cosine and sine.
 
void SetAntennaHorizontalSpacing (double s)
 Set the horizontal spacing for the antenna elements of the phased array This method resets the stored beamforming vector to a ComplexVector of the correct size, but zero-filled.
 
void SetAntennaVerticalSpacing (double s)
 Set the vertical spacing for the antenna elements of the phased array This method resets the stored beamforming vector to a ComplexVector of the correct size, but zero-filled.
 
void SetBeta (double beta)
 Set the downtilt angle This method sets the downtilt angle and computes its cosine and sine.
 
void SetDualPol (bool isDualPol)
 Set the polarization.
 
void SetNumColumns (uint32_t n) override
 Set the number of columns of the phased array This method resets the stored beamforming vector to a ComplexVector of the correct size, but zero-filled.
 
void SetNumHorizontalPorts (uint16_t nPorts) override
 Set the number of horizontal antenna ports.
 
void SetNumRows (uint32_t n) override
 Set the number of rows of the phased array This method resets the stored beamforming vector to a ComplexVector of the correct size, but zero-filled.
 
void SetNumVerticalPorts (uint16_t nPorts) override
 Set the number of vertical antenna ports.
 
void SetPolSlant (double polSlant)
 Set the polarization slant angle This method sets the polarization slant angle and computes its cosine and sine.
 
- Public Member Functions inherited from ns3::PhasedArrayModel
 PhasedArrayModel ()
 Constructor.
 
 ~PhasedArrayModel () override
 Destructor.
 
virtual uint16_t ArrayIndexFromPortIndex (uint16_t portIndex, uint16_t subElementIndex) const =0
 Calculate the index in the antenna array from the port index and the element in the port.
 
Ptr< const AntennaModelGetAntennaElement () const
 Returns a pointer to the AntennaModel instance used to model the elements of the array.
 
ComplexVector GetBeamformingVector () const
 Returns the beamforming vector that is currently being used.
 
ComplexVector GetBeamformingVector (Angles a) const
 Returns the beamforming vector that points towards the specified position.
 
const PhasedArrayModel::ComplexVectorGetBeamformingVectorRef () const
 Returns the const reference of the beamforming vector that is currently being used.
 
virtual std::pair< double, doubleGetElementFieldPattern (Angles a, uint8_t polIndex=0) const =0
 Returns the horizontal and vertical components of the antenna element field pattern at the specified direction.
 
virtual Vector GetElementLocation (uint64_t index) const =0
 Returns the location of the antenna element with the specified index, normalized with respect to the wavelength.
 
virtual uint8_t GetElemPol (size_t elementIndex) const =0
 Returns the index of the polarization to which belongs that antenna element.
 
virtual size_t GetHElemsPerPort () const =0
 Get the horizontal number of antenna elements per port.
 
uint32_t GetId () const
 Returns the ID of this antenna array instance.
 
virtual uint32_t GetNumColumns () const =0
 Get the number of columns.
 
virtual size_t GetNumElems () const =0
 Returns the number of antenna elements.
 
virtual size_t GetNumElemsPerPort () const =0
 Get the number of elements per port.
 
virtual uint16_t GetNumHorizontalPorts () const =0
 Get the horizontal number of ports.
 
virtual uint8_t GetNumPols () const =0
 Get the number of polarizations.
 
virtual uint16_t GetNumPorts () const =0
 Get the number of ports.
 
virtual uint32_t GetNumRows () const =0
 Get the number of rows.
 
virtual uint16_t GetNumVerticalPorts () const =0
 Get the vertical number of ports.
 
virtual double GetPolSlant () const =0
 Get the polarization slant angle.
 
ComplexVector GetSteeringVector (Angles a) const
 Returns the steering vector that points toward the specified position.
 
virtual size_t GetVElemsPerPort () const =0
 Get the vertical number of antenna elements per port.
 
virtual bool IsDualPol () const =0
 Get the indication whether the antenna array is dual polarized.
 
double norm (const ComplexVector &complexVector) const
 Computes the Frobenius norm of the complex vector.
 
void SetAntennaElement (Ptr< AntennaModel > antennaElement)
 Sets the antenna model to be used.
 
void SetBeamformingVector (const ComplexVector &beamformingVector)
 Sets the beamforming vector to be used.
 
virtual void SetNumColumns (uint32_t nColumns)=0
 Set the number of columns.
 
virtual void SetNumHorizontalPorts (uint16_t nPorts)=0
 Set the horizontal number of ports.
 
virtual void SetNumRows (uint32_t nRows)=0
 Set the number of rows.
 
virtual void SetNumVerticalPorts (uint16_t nPorts)=0
 Set the vertical number of ports.
 
- 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 ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::PhasedArrayModel
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_alpha {0.0}
 the bearing angle in radians
 
double m_beta {0.0}
 the downtilt angle in radians
 
double m_cosAlpha {1.0}
 the cosine of alpha
 
double m_cosBeta {1.0}
 the cosine of Beta
 
std::vector< doublem_cosPolSlant {1.0, 0.0}
 the cosine of polarization slant angle
 
double m_disH {0.5}
 antenna spacing in the horizontal direction in multiples of wave length
 
double m_disV {0.5}
 antenna spacing in the vertical direction in multiples of wave length
 
bool m_isDualPolarized {false}
 if true antenna elements are dual-polarized
 
uint32_t m_numColumns {1}
 number of columns
 
uint16_t m_numHPorts {1}
 Number of horizontal ports.
 
uint32_t m_numRows {1}
 number of rows
 
uint16_t m_numVPorts {1}
 Number of vertical ports.
 
double m_polSlant {0.0}
 the polarization slant angle in radians
 
double m_sinAlpha {0.0}
 the sine of alpha
 
double m_sinBeta {0.0}
 the sine of Beta
 
std::vector< doublem_sinPolSlant {0.0, -1.0}
 the sine polarization slant angle
 

Additional Inherited Members

- Public Types inherited from ns3::PhasedArrayModel
using ComplexVector = ComplexMatrixArray
 the underlying Valarray
 
- 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.
 
- Protected Attributes inherited from ns3::PhasedArrayModel
Ptr< AntennaModelm_antennaElement
 the model of the antenna element in use
 
ComplexVector m_beamformingVector
 the beamforming vector in use
 
uint32_t m_id {0}
 the ID of this antenna array instance
 
bool m_isBfVectorValid
 ensures the validity of the beamforming vector
 
- Static Protected Attributes inherited from ns3::PhasedArrayModel
static uint32_t m_idCounter = 0
 the ID counter that is used to determine the unique antenna array ID
 

Detailed Description

Class implementing Uniform Planar Array (UPA) model.

Introspection did not find any typical Config paths.

Note
the current implementation supports the modeling of antenna arrays composed of a single panel and with single or dual polarization.


Attributes

  • AntennaHorizontalSpacing: Horizontal spacing between antenna elements, in multiples of wave length
    • Set with class: ns3::DoubleValue
    • Underlying type: double 0:1.79769e+308
    • Initial value: 0.5
    • Flags: constructwriteread
  • AntennaVerticalSpacing: Vertical spacing between antenna elements, in multiples of wave length
    • Set with class: ns3::DoubleValue
    • Underlying type: double 0:1.79769e+308
    • Initial value: 0.5
    • Flags: constructwriteread
  • BearingAngle: The bearing angle in radians
    • Set with class: ns3::DoubleValue
    • Underlying type: double -3.14159:3.14159
    • Initial value: 0
    • Flags: constructwrite
  • DowntiltAngle: The downtilt angle in radians
    • Set with class: ns3::DoubleValue
    • Underlying type: double -3.14159:3.14159
    • Initial value: 0
    • Flags: constructwrite
  • IsDualPolarized: If true, dual polarized antenna
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: constructwriteread
  • NumColumns: Horizontal size of the array
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 1:4294967295
    • Initial value: 4
    • Flags: constructwriteread
  • NumHorizontalPorts: Horizontal number of ports
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 0:4294967295
    • Initial value: 1
    • Flags: constructwriteread
  • NumRows: Vertical size of the array
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 1:4294967295
    • Initial value: 4
    • Flags: constructwriteread
  • NumVerticalPorts: Vertical number of ports
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 0:4294967295
    • Initial value: 1
    • Flags: constructwriteread
  • PolSlantAngle: The polarization slant angle in radians
    • Set with class: ns3::DoubleValue
    • Underlying type: double -3.14159:3.14159
    • Initial value: 0
    • Flags: constructwriteread

Attributes defined in parent class ns3::PhasedArrayModel

No TraceSources are defined for this type.
Size of this type is 264 bytes (on a 64-bit architecture).

Definition at line 36 of file uniform-planar-array.h.

Constructor & Destructor Documentation

◆ UniformPlanarArray()

ns3::UniformPlanarArray::UniformPlanarArray ( )

Constructor.

Definition at line 32 of file uniform-planar-array.cc.

◆ ~UniformPlanarArray()

ns3::UniformPlanarArray::~UniformPlanarArray ( )
override

Destructor.

Definition at line 37 of file uniform-planar-array.cc.

Member Function Documentation

◆ ArrayIndexFromPortIndex()

uint16_t ns3::UniformPlanarArray::ArrayIndexFromPortIndex ( uint16_t  portIndex,
uint16_t  subElementIndex 
) const
overridevirtual

Maps element within a port to an index of element within the antenna array.

Parameters
portIndexthe port index
subElementIndexthe element index within the port
Returns
the element index in the antenna array

Implements ns3::PhasedArrayModel.

Definition at line 352 of file uniform-planar-array.cc.

References GetHElemsPerPort(), GetNumColumns(), GetNumHorizontalPorts(), GetNumPorts(), GetNumRows(), GetNumVerticalPorts(), GetVElemsPerPort(), NS_ASSERT, and NS_ASSERT_MSG.

+ Here is the call graph for this function:

◆ GetAntennaHorizontalSpacing()

double ns3::UniformPlanarArray::GetAntennaHorizontalSpacing ( ) const

Get the horizontal spacing for the antenna elements of the phased array.

Returns
the horizontal spacing in multiples of wavelength

Definition at line 183 of file uniform-planar-array.cc.

References m_disH.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetAntennaVerticalSpacing()

double ns3::UniformPlanarArray::GetAntennaVerticalSpacing ( ) const

Get the vertical spacing for the antenna elements of the phased array.

Returns
the vertical spacing in multiples of wavelength

Definition at line 202 of file uniform-planar-array.cc.

References m_disV.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetElementFieldPattern()

std::pair< double, double > ns3::UniformPlanarArray::GetElementFieldPattern ( Angles  a,
uint8_t  polIndex = 0 
) const
overridevirtual

Returns the horizontal and vertical components of the antenna element field pattern at the specified direction and for the specified polarization.

Parameters
athe angle indicating the interested direction
polIndexthe index of the polarization for which will be retrieved the field pattern
Returns
a pair in which the first element is the horizontal component of the field pattern and the second element is the vertical component of the field pattern

Implements ns3::PhasedArrayModel.

Definition at line 208 of file uniform-planar-array.cc.

References ns3::Angles::GetAzimuth(), ns3::AntennaModel::GetGainDb(), ns3::Angles::GetInclination(), GetNumPols(), m_alpha, ns3::PhasedArrayModel::m_antennaElement, m_cosBeta, m_cosPolSlant, m_sinBeta, m_sinPolSlant, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::RadiansToDegrees().

+ Here is the call graph for this function:

◆ GetElementLocation()

Vector ns3::UniformPlanarArray::GetElementLocation ( uint64_t  index) const
overridevirtual

Returns the location of the antenna element with the specified index assuming the left bottom corner is (0,0,0), normalized with respect to the wavelength.

Antenna elements are scanned row by row, left to right and bottom to top. For example, an antenna with 2 rows and 3 columns will be ordered as follows: ^ z | 3 4 5 | 0 1 2 -------—> y In case of dual-polarized antennas, the antennas of the first and the second polarization are overlapped in space.

Parameters
indexindex of the antenna element
Returns
the 3D vector that represents the position of the element

Implements ns3::PhasedArrayModel.

Definition at line 254 of file uniform-planar-array.cc.

References m_cosAlpha, m_cosBeta, m_disH, m_disV, m_isDualPolarized, m_numColumns, m_numRows, m_sinAlpha, m_sinBeta, and NS_LOG_FUNCTION.

◆ GetElemPol()

uint8_t ns3::UniformPlanarArray::GetElemPol ( size_t  elemIndex) const
overridevirtual

Returns the index of polarization to which belongs the antenna element with a specific index.

Parameters
elemIndexthe antenna element index
Returns
the polarization index

Implements ns3::PhasedArrayModel.

Definition at line 399 of file uniform-planar-array.cc.

References GetNumColumns(), GetNumElems(), GetNumRows(), and NS_ASSERT.

+ Here is the call graph for this function:

◆ GetHElemsPerPort()

size_t ns3::UniformPlanarArray::GetHElemsPerPort ( ) const
overridevirtual

Get the number of horizontal elements belonging to each port.

Returns
the number of horizontal elements belonging to each port

Implements ns3::PhasedArrayModel.

Definition at line 338 of file uniform-planar-array.cc.

References m_numColumns, and m_numHPorts.

Referenced by ArrayIndexFromPortIndex(), and GetNumElemsPerPort().

+ Here is the caller graph for this function:

◆ GetNumColumns()

uint32_t ns3::UniformPlanarArray::GetNumColumns ( ) const
overridevirtual

Get the number of columns of the phased array.

Returns
the number of columns

Implements ns3::PhasedArrayModel.

Definition at line 123 of file uniform-planar-array.cc.

References m_numColumns.

Referenced by ArrayIndexFromPortIndex(), GetElemPol(), and GetTypeId().

+ Here is the caller graph for this function:

◆ GetNumElems()

size_t ns3::UniformPlanarArray::GetNumElems ( ) const
overridevirtual

Returns the number of total antenna elements.

Note that if the antenna is dual-polarized the number of total antenna elements is doubled.

Returns
the number of antenna elements

Implements ns3::PhasedArrayModel.

Definition at line 287 of file uniform-planar-array.cc.

References GetNumPols(), m_numColumns, and m_numRows.

Referenced by GetElemPol().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetNumElemsPerPort()

size_t ns3::UniformPlanarArray::GetNumElemsPerPort ( ) const
overridevirtual

Get the total number of elements belonging to each port.

Returns
the number of elements per port

Implements ns3::PhasedArrayModel.

Definition at line 344 of file uniform-planar-array.cc.

References GetHElemsPerPort(), and GetVElemsPerPort().

+ Here is the call graph for this function:

◆ GetNumHorizontalPorts()

uint16_t ns3::UniformPlanarArray::GetNumHorizontalPorts ( ) const
overridevirtual

Get the number of horizontal antenna ports.

Returns
the number of horizontal antenna ports

Implements ns3::PhasedArrayModel.

Definition at line 320 of file uniform-planar-array.cc.

References m_numHPorts.

Referenced by ArrayIndexFromPortIndex(), and GetTypeId().

+ Here is the caller graph for this function:

◆ GetNumPols()

uint8_t ns3::UniformPlanarArray::GetNumPols ( ) const
overridevirtual

Returns the number of polarizations, 2 in the case that the antenna is dual-polarized, otherwise 1.

Returns

Implements ns3::PhasedArrayModel.

Definition at line 281 of file uniform-planar-array.cc.

References m_isDualPolarized.

Referenced by GetElementFieldPattern(), GetNumElems(), and GetNumPorts().

+ Here is the caller graph for this function:

◆ GetNumPorts()

uint16_t ns3::UniformPlanarArray::GetNumPorts ( ) const
overridevirtual

Get the total number of antenna ports.

Returns
the number of antenna ports

Implements ns3::PhasedArrayModel.

Definition at line 326 of file uniform-planar-array.cc.

References GetNumPols(), m_numHPorts, and m_numVPorts.

Referenced by ArrayIndexFromPortIndex().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetNumRows()

uint32_t ns3::UniformPlanarArray::GetNumRows ( ) const
overridevirtual

Get the number of rows of the phased array.

Returns
the number of rows

Implements ns3::PhasedArrayModel.

Definition at line 140 of file uniform-planar-array.cc.

References m_numRows.

Referenced by ArrayIndexFromPortIndex(), GetElemPol(), and GetTypeId().

+ Here is the caller graph for this function:

◆ GetNumVerticalPorts()

uint16_t ns3::UniformPlanarArray::GetNumVerticalPorts ( ) const
overridevirtual

Get the number of vertical antenna ports.

Returns
the number of vertical antenna ports

Implements ns3::PhasedArrayModel.

Definition at line 314 of file uniform-planar-array.cc.

References m_numVPorts.

Referenced by ArrayIndexFromPortIndex(), and GetTypeId().

+ Here is the caller graph for this function:

◆ GetPolSlant()

double ns3::UniformPlanarArray::GetPolSlant ( ) const
overridevirtual

Returns polarization angle of first polarization.

Returns
polarization angle in radians

Implements ns3::PhasedArrayModel.

Definition at line 393 of file uniform-planar-array.cc.

References m_polSlant.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetTypeId()

◆ GetVElemsPerPort()

size_t ns3::UniformPlanarArray::GetVElemsPerPort ( ) const
overridevirtual

Get the number of vertical elements belonging to each port.

Returns
the number of vertical elements belonging of each port

Implements ns3::PhasedArrayModel.

Definition at line 332 of file uniform-planar-array.cc.

References m_numRows, and m_numVPorts.

Referenced by ArrayIndexFromPortIndex(), and GetNumElemsPerPort().

+ Here is the caller graph for this function:

◆ IsDualPol()

bool ns3::UniformPlanarArray::IsDualPol ( ) const
overridevirtual

Check if an antenna array contains dual-polarized elements.

Returns
true if antenna has two polarization otherwise false

Implements ns3::PhasedArrayModel.

Definition at line 376 of file uniform-planar-array.cc.

References m_isDualPolarized.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetAlpha()

void ns3::UniformPlanarArray::SetAlpha ( double  alpha)

Set the bearing angle This method sets the bearing angle and computes its cosine and sine.

Parameters
alphathe bearing angle in radians

Definition at line 146 of file uniform-planar-array.cc.

References m_alpha, m_cosAlpha, and m_sinAlpha.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetAntennaHorizontalSpacing()

void ns3::UniformPlanarArray::SetAntennaHorizontalSpacing ( double  s)

Set the horizontal spacing for the antenna elements of the phased array This method resets the stored beamforming vector to a ComplexVector of the correct size, but zero-filled.

Parameters
sthe horizontal spacing in multiples of wavelength

Definition at line 170 of file uniform-planar-array.cc.

References m_disH, ns3::PhasedArrayModel::m_isBfVectorValid, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetAntennaVerticalSpacing()

void ns3::UniformPlanarArray::SetAntennaVerticalSpacing ( double  s)

Set the vertical spacing for the antenna elements of the phased array This method resets the stored beamforming vector to a ComplexVector of the correct size, but zero-filled.

Parameters
sthe vertical spacing in multiples of wavelength

Definition at line 189 of file uniform-planar-array.cc.

References m_disV, ns3::PhasedArrayModel::m_isBfVectorValid, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetBeta()

void ns3::UniformPlanarArray::SetBeta ( double  beta)

Set the downtilt angle This method sets the downtilt angle and computes its cosine and sine.

Parameters
betathe downtilt angle in radians

Definition at line 154 of file uniform-planar-array.cc.

References m_beta, m_cosBeta, and m_sinBeta.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetDualPol()

void ns3::UniformPlanarArray::SetDualPol ( bool  isDualPol)

Set the polarization.

Parameters
isDualPolwhether to set the antenna array to be dual-polarized, if true, antenna will be dual-polarized

Definition at line 382 of file uniform-planar-array.cc.

References m_cosPolSlant, m_isDualPolarized, m_polSlant, and m_sinPolSlant.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetNumColumns()

void ns3::UniformPlanarArray::SetNumColumns ( uint32_t  n)
overridevirtual

Set the number of columns of the phased array This method resets the stored beamforming vector to a ComplexVector of the correct size, but zero-filled.

Parameters
nthe number of columns

Implements ns3::PhasedArrayModel.

Definition at line 112 of file uniform-planar-array.cc.

References ns3::PhasedArrayModel::m_isBfVectorValid, m_numColumns, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetNumHorizontalPorts()

void ns3::UniformPlanarArray::SetNumHorizontalPorts ( uint16_t  nPorts)
overridevirtual

Set the number of horizontal antenna ports.

Parameters
nPorts

Implements ns3::PhasedArrayModel.

Definition at line 305 of file uniform-planar-array.cc.

References m_numColumns, m_numHPorts, and NS_ASSERT_MSG.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetNumRows()

void ns3::UniformPlanarArray::SetNumRows ( uint32_t  n)
overridevirtual

Set the number of rows of the phased array This method resets the stored beamforming vector to a ComplexVector of the correct size, but zero-filled.

Parameters
nthe number of rows

Implements ns3::PhasedArrayModel.

Definition at line 129 of file uniform-planar-array.cc.

References ns3::PhasedArrayModel::m_isBfVectorValid, m_numRows, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetNumVerticalPorts()

void ns3::UniformPlanarArray::SetNumVerticalPorts ( uint16_t  nPorts)
overridevirtual

Set the number of vertical antenna ports.

Parameters
nPortsThe number of vertical ports to be configured

Implements ns3::PhasedArrayModel.

Definition at line 295 of file uniform-planar-array.cc.

References m_numRows, m_numVPorts, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetPolSlant()

void ns3::UniformPlanarArray::SetPolSlant ( double  polSlant)

Set the polarization slant angle This method sets the polarization slant angle and computes its cosine and sine.

Parameters
polSlantthe polarization slant angle in radians

Definition at line 162 of file uniform-planar-array.cc.

References m_cosPolSlant, m_polSlant, and m_sinPolSlant.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_alpha

double ns3::UniformPlanarArray::m_alpha {0.0}
private

the bearing angle in radians

Definition at line 268 of file uniform-planar-array.h.

Referenced by GetElementFieldPattern(), and SetAlpha().

◆ m_beta

double ns3::UniformPlanarArray::m_beta {0.0}
private

the downtilt angle in radians

Definition at line 271 of file uniform-planar-array.h.

Referenced by SetBeta().

◆ m_cosAlpha

double ns3::UniformPlanarArray::m_cosAlpha {1.0}
private

the cosine of alpha

Definition at line 269 of file uniform-planar-array.h.

Referenced by GetElementLocation(), and SetAlpha().

◆ m_cosBeta

double ns3::UniformPlanarArray::m_cosBeta {1.0}
private

the cosine of Beta

Definition at line 272 of file uniform-planar-array.h.

Referenced by GetElementFieldPattern(), GetElementLocation(), and SetBeta().

◆ m_cosPolSlant

std::vector<double> ns3::UniformPlanarArray::m_cosPolSlant {1.0, 0.0}
private

the cosine of polarization slant angle

Definition at line 278 of file uniform-planar-array.h.

Referenced by GetElementFieldPattern(), SetDualPol(), and SetPolSlant().

◆ m_disH

double ns3::UniformPlanarArray::m_disH {0.5}
private

antenna spacing in the horizontal direction in multiples of wave length

Definition at line 267 of file uniform-planar-array.h.

Referenced by GetAntennaHorizontalSpacing(), GetElementLocation(), and SetAntennaHorizontalSpacing().

◆ m_disV

double ns3::UniformPlanarArray::m_disV {0.5}
private

antenna spacing in the vertical direction in multiples of wave length

Definition at line 266 of file uniform-planar-array.h.

Referenced by GetAntennaVerticalSpacing(), GetElementLocation(), and SetAntennaVerticalSpacing().

◆ m_isDualPolarized

bool ns3::UniformPlanarArray::m_isDualPolarized {false}
private

if true antenna elements are dual-polarized

Definition at line 275 of file uniform-planar-array.h.

Referenced by GetElementLocation(), GetNumPols(), IsDualPol(), and SetDualPol().

◆ m_numColumns

uint32_t ns3::UniformPlanarArray::m_numColumns {1}
private

◆ m_numHPorts

uint16_t ns3::UniformPlanarArray::m_numHPorts {1}
private

Number of horizontal ports.

Definition at line 277 of file uniform-planar-array.h.

Referenced by GetHElemsPerPort(), GetNumHorizontalPorts(), GetNumPorts(), and SetNumHorizontalPorts().

◆ m_numRows

uint32_t ns3::UniformPlanarArray::m_numRows {1}
private

◆ m_numVPorts

uint16_t ns3::UniformPlanarArray::m_numVPorts {1}
private

Number of vertical ports.

Definition at line 276 of file uniform-planar-array.h.

Referenced by GetNumPorts(), GetNumVerticalPorts(), GetVElemsPerPort(), and SetNumVerticalPorts().

◆ m_polSlant

double ns3::UniformPlanarArray::m_polSlant {0.0}
private

the polarization slant angle in radians

Definition at line 274 of file uniform-planar-array.h.

Referenced by GetPolSlant(), SetDualPol(), and SetPolSlant().

◆ m_sinAlpha

double ns3::UniformPlanarArray::m_sinAlpha {0.0}
private

the sine of alpha

Definition at line 270 of file uniform-planar-array.h.

Referenced by GetElementLocation(), and SetAlpha().

◆ m_sinBeta

double ns3::UniformPlanarArray::m_sinBeta {0.0}
private

the sine of Beta

Definition at line 273 of file uniform-planar-array.h.

Referenced by GetElementFieldPattern(), GetElementLocation(), and SetBeta().

◆ m_sinPolSlant

std::vector<double> ns3::UniformPlanarArray::m_sinPolSlant {0.0, -1.0}
private

the sine polarization slant angle

Definition at line 279 of file uniform-planar-array.h.

Referenced by GetElementFieldPattern(), SetDualPol(), and SetPolSlant().


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