A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::BuildingsPropagationLossModel Class Reference

#include <buildings-propagation-loss-model.h>

+ Inheritance diagram for ns3::BuildingsPropagationLossModel:
+ Collaboration diagram for ns3::BuildingsPropagationLossModel:

Classes

class  ShadowingLoss

Public Member Functions

 BuildingsPropagationLossModel ()
virtual double DoCalcRxPower (double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
virtual double GetLoss (Ptr< MobilityModel > a, Ptr< MobilityModel > b) const =0
- Public Member Functions inherited from ns3::PropagationLossModel
 PropagationLossModel ()
virtual ~PropagationLossModel ()
int64_t AssignStreams (int64_t stream)
double CalcRxPower (double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
Ptr< PropagationLossModelGetNext ()
 Gets the next PropagationLossModel in the chain of loss models that act on the signal.
void SetNext (Ptr< PropagationLossModel > next)
 Enables a chain of loss models to act on the signal.
- Public Member Functions inherited from ns3::Object
 Object ()
virtual ~Object ()
void AggregateObject (Ptr< Object > other)
void Dispose (void)
AggregateIterator GetAggregateIterator (void) const
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

Static Public Member Functions

static TypeId GetTypeId (void)

Protected Member Functions

virtual int64_t DoAssignStreams (int64_t stream)
double EvaluateSigma (Ptr< BuildingsMobilityModel > a, Ptr< BuildingsMobilityModel > b) const
double ExternalWallLoss (Ptr< BuildingsMobilityModel > a) const
double GetShadowing (Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
double HeightLoss (Ptr< BuildingsMobilityModel > n) const
double InternalWallsLoss (Ptr< BuildingsMobilityModel > a, Ptr< BuildingsMobilityModel > b) const

Protected Attributes

double m_lossInternalWall
Ptr< NormalRandomVariablem_randVariable
std::map< Ptr< MobilityModel >
, std::map< Ptr< MobilityModel >
, ShadowingLoss > > 
m_shadowingLossMap
double m_shadowingSigmaExtWalls
double m_shadowingSigmaIndoor
double m_shadowingSigmaOutdoor

Detailed Description

This model provides means for simulating the following propagation phenomena in the presence of buildings:

  • shadowing (indoor, outdoor)
  • external wall penetration loss
  • internal wall penetration loss

The distance-dependent component of propagation loss is deferred to derived classes which are expected to implement the GetLoss method.

Warning
This model works only with BuildingsMobilityModel

Config Paths

ns3::BuildingsPropagationLossModel is accessible through the following paths with Config::Set and Config::Connect:

  • /ChannelList/[i]/$ns3::WifiChannel/$ns3::YansWifiChannel/PropagationLossModel/$ns3::BuildingsPropagationLossModel
  • /ChannelList/[i]/$ns3::YansWifiChannel/PropagationLossModel/$ns3::BuildingsPropagationLossModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WifiNetDevice/Channel/$ns3::YansWifiChannel/PropagationLossModel/$ns3::BuildingsPropagationLossModel

Attributes

  • ShadowSigmaOutdoor: Standard deviation of the normal distribution used for calculate the shadowing for outdoor nodes
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 7
    • Flags: construct write read
  • ShadowSigmaIndoor: Standard deviation of the normal distribution used for calculate the shadowing for indoor nodes
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 8
    • Flags: construct write read
  • ShadowSigmaExtWalls: Standard deviation of the normal distribution used for calculate the shadowing due to ext walls
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 5
    • Flags: construct write read
  • InternalWallLoss: Additional loss for each internal wall [dB]
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 5
    • Flags: construct write read

No TraceSources are defined for this type.

Definition at line 55 of file buildings-propagation-loss-model.h.

Constructor & Destructor Documentation

ns3::BuildingsPropagationLossModel::BuildingsPropagationLossModel ( )

Definition at line 97 of file buildings-propagation-loss-model.cc.

References m_randVariable.

Member Function Documentation

int64_t ns3::BuildingsPropagationLossModel::DoAssignStreams ( int64_t  stream)
protectedvirtual

Subclasses must implement this; those not using random variables can return zero

Implements ns3::PropagationLossModel.

Definition at line 222 of file buildings-propagation-loss-model.cc.

References m_randVariable, and ns3::RandomVariableStream::SetStream().

+ Here is the call graph for this function:

double ns3::BuildingsPropagationLossModel::DoCalcRxPower ( double  txPowerDbm,
Ptr< MobilityModel a,
Ptr< MobilityModel b 
) const
virtual

Implements ns3::PropagationLossModel.

Definition at line 216 of file buildings-propagation-loss-model.cc.

References GetLoss(), and GetShadowing().

+ Here is the call graph for this function:

double ns3::BuildingsPropagationLossModel::EvaluateSigma ( Ptr< BuildingsMobilityModel a,
Ptr< BuildingsMobilityModel b 
) const
protected

Definition at line 187 of file buildings-propagation-loss-model.cc.

References ns3::BuildingsMobilityModel::IsIndoor(), ns3::BuildingsMobilityModel::IsOutdoor(), m_shadowingSigmaExtWalls, m_shadowingSigmaIndoor, and m_shadowingSigmaOutdoor.

Referenced by GetShadowing().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::BuildingsPropagationLossModel::ExternalWallLoss ( Ptr< BuildingsMobilityModel a) const
protected
virtual double ns3::BuildingsPropagationLossModel::GetLoss ( Ptr< MobilityModel a,
Ptr< MobilityModel b 
) const
pure virtual
Parameters
athe mobility model of the source
bthe mobility model of the destination
Returns
the propagation loss (in dBm)

Implemented in ns3::HybridBuildingsPropagationLossModel, and ns3::OhBuildingsPropagationLossModel.

Referenced by DoCalcRxPower(), and GetShadowing().

+ Here is the caller graph for this function:

double ns3::BuildingsPropagationLossModel::GetShadowing ( Ptr< MobilityModel a,
Ptr< MobilityModel b 
) const
protected

Definition at line 148 of file buildings-propagation-loss-model.cc.

References EvaluateSigma(), GetLoss(), ns3::NormalRandomVariable::GetValue(), m_randVariable, m_shadowingLossMap, and NS_ASSERT_MSG.

Referenced by DoCalcRxPower().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

TypeId ns3::BuildingsPropagationLossModel::GetTypeId ( void  )
static
double ns3::BuildingsPropagationLossModel::HeightLoss ( Ptr< BuildingsMobilityModel n) const
protected

Definition at line 127 of file buildings-propagation-loss-model.cc.

References ns3::BuildingsMobilityModel::GetFloorNumber().

Referenced by ns3::HybridBuildingsPropagationLossModel::GetLoss().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::BuildingsPropagationLossModel::InternalWallsLoss ( Ptr< BuildingsMobilityModel a,
Ptr< BuildingsMobilityModel b 
) const
protected

Member Data Documentation

double ns3::BuildingsPropagationLossModel::m_lossInternalWall
protected

Definition at line 79 of file buildings-propagation-loss-model.h.

Referenced by GetTypeId(), and InternalWallsLoss().

Ptr<NormalRandomVariable> ns3::BuildingsPropagationLossModel::m_randVariable
protected
std::map<Ptr<MobilityModel>, std::map<Ptr<MobilityModel>, ShadowingLoss> > ns3::BuildingsPropagationLossModel::m_shadowingLossMap
mutableprotected

Definition at line 94 of file buildings-propagation-loss-model.h.

Referenced by GetShadowing().

double ns3::BuildingsPropagationLossModel::m_shadowingSigmaExtWalls
protected

Definition at line 98 of file buildings-propagation-loss-model.h.

Referenced by EvaluateSigma(), and GetTypeId().

double ns3::BuildingsPropagationLossModel::m_shadowingSigmaIndoor
protected

Definition at line 100 of file buildings-propagation-loss-model.h.

Referenced by EvaluateSigma(), and GetTypeId().

double ns3::BuildingsPropagationLossModel::m_shadowingSigmaOutdoor
protected

Definition at line 99 of file buildings-propagation-loss-model.h.

Referenced by EvaluateSigma(), and GetTypeId().


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