A Discrete-Event Network Simulator
API
propagation-loss-model.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2005,2006,2007 INRIA
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  * Contributions: Timo Bingmann <timo.bingmann@student.kit.edu>
20  * Contributions: Gary Pei <guangyu.pei@boeing.com> for fixed RSS
21  * Contributions: Tom Hewer <tomhewer@mac.com> for two ray ground model
22  * Pavel Boyko <boyko@iitp.ru> for matrix
23  */
24 
25 #ifndef PROPAGATION_LOSS_MODEL_H
26 #define PROPAGATION_LOSS_MODEL_H
27 
28 #include "ns3/object.h"
29 #include "ns3/random-variable-stream.h"
30 #include <map>
31 
32 namespace ns3 {
33 
39 class MobilityModel;
40 
50 {
51 public:
57  static TypeId GetTypeId (void);
58 
60  virtual ~PropagationLossModel ();
61 
71 
82 
92  double CalcRxPower (double txPowerDbm,
94  Ptr<MobilityModel> b) const;
95 
107  int64_t AssignStreams (int64_t stream);
108 
109 protected:
119  virtual double DoCalcRxPower (double txPowerDbm,
121  Ptr<MobilityModel> b) const = 0;
122 
129  virtual int64_t DoAssignStreams (int64_t stream) = 0;
130 
131 private:
138 
146 
148 };
149 
156 {
157 public:
162  static TypeId GetTypeId (void);
163 
165  virtual ~RandomPropagationLossModel ();
166 
167 private:
181 
182  double DoCalcRxPower (double txPowerDbm,
184  Ptr<MobilityModel> b) const override;
185  int64_t DoAssignStreams (int64_t stream) override;
186 
188 };
189 
268 {
269 public:
274  static TypeId GetTypeId (void);
282  void SetFrequency (double frequency);
288  void SetSystemLoss (double systemLoss);
289 
296  void SetMinLoss (double minLoss);
297 
301  double GetMinLoss (void) const;
302 
306  double GetFrequency (void) const;
310  double GetSystemLoss (void) const;
311 
312 private:
326 
327  double DoCalcRxPower (double txPowerDbm,
329  Ptr<MobilityModel> b) const override;
330  int64_t DoAssignStreams (int64_t stream) override;
331 
337  double DbmToW (double dbm) const;
338 
344  double DbmFromW (double w) const;
345 
346  double m_lambda;
347  double m_frequency;
348  double m_systemLoss;
349  double m_minLoss;
350 };
351 
381 {
382 public:
387  static TypeId GetTypeId (void);
389 
396  void SetFrequency (double frequency);
397 
403  void SetSystemLoss (double systemLoss);
410  void SetMinDistance (double minDistance);
414  double GetMinDistance (void) const;
415 
419  double GetFrequency (void) const;
420 
424  double GetSystemLoss (void) const;
430  void SetHeightAboveZ (double heightAboveZ);
431 
432 private:
446 
447  double DoCalcRxPower (double txPowerDbm,
449  Ptr<MobilityModel> b) const override;
450  int64_t DoAssignStreams (int64_t stream) override;
451 
457  double DbmToW (double dbm) const;
458 
464  double DbmFromW (double w) const;
465 
466  double m_lambda;
467  double m_frequency;
468  double m_systemLoss;
469  double m_minDistance;
470  double m_heightAboveZ;
471 };
472 
494 {
495 public:
500  static TypeId GetTypeId (void);
502 
507  void SetPathLossExponent (double n);
511  double GetPathLossExponent (void) const;
512 
518  void SetReference (double referenceDistance, double referenceLoss);
519 
520 private:
534 
535  double DoCalcRxPower (double txPowerDbm,
537  Ptr<MobilityModel> b) const override;
538 
539  int64_t DoAssignStreams (int64_t stream) override;
540 
546 
547  double m_exponent;
550 };
551 
593 {
594 public:
599  static TypeId GetTypeId (void);
601 
602  // Parameters are all accessible via attributes.
603 
604 private:
618 
619  double DoCalcRxPower (double txPowerDbm,
621  Ptr<MobilityModel> b) const override;
622 
623  int64_t DoAssignStreams (int64_t stream) override;
624 
625  double m_distance0;
626  double m_distance1;
627  double m_distance2;
628 
629  double m_exponent0;
630  double m_exponent1;
631  double m_exponent2;
632 
634 };
635 
664 {
665 public:
670  static TypeId GetTypeId (void);
671 
673 
674  // Parameters are all accessible via attributes.
675 
676 private:
690 
691  double DoCalcRxPower (double txPowerDbm,
693  Ptr<MobilityModel> b) const override;
694 
695  int64_t DoAssignStreams (int64_t stream) override;
696 
697  double m_distance1;
698  double m_distance2;
699 
700  double m_m0;
701  double m_m1;
702  double m_m2;
703 
706 };
707 
722 {
723 public:
728  static TypeId GetTypeId (void);
729 
731  virtual ~FixedRssLossModel ();
737  void SetRss (double rss);
738 
739 private:
753 
754  double DoCalcRxPower (double txPowerDbm,
756  Ptr<MobilityModel> b) const override;
757 
758  int64_t DoAssignStreams (int64_t stream) override;
759 
760  double m_rss;
761 };
762 
771 {
772 public:
777  static TypeId GetTypeId (void);
778 
780  virtual ~MatrixPropagationLossModel ();
781 
791  void SetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b, double loss, bool symmetric = true);
792 
797  void SetDefaultLoss (double defaultLoss);
798 
799 private:
813 
814  double DoCalcRxPower (double txPowerDbm,
816  Ptr<MobilityModel> b) const override;
817 
818  int64_t DoAssignStreams (int64_t stream) override;
819 
820  double m_default;
821 
823  typedef std::pair< Ptr<MobilityModel>, Ptr<MobilityModel> > MobilityPair;
824 
825  std::map<MobilityPair, double> m_loss;
826 };
827 
839 {
840 public:
845  static TypeId GetTypeId (void);
847 private:
861 
862  double DoCalcRxPower (double txPowerDbm,
864  Ptr<MobilityModel> b) const override;
865 
866  int64_t DoAssignStreams (int64_t stream) override;
867 
868  double m_range;
869 };
870 
871 } // namespace ns3
872 
873 #endif /* PROPAGATION_LOSS_MODEL_H */
ns3::RandomPropagationLossModel::DoCalcRxPower
double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
Returns the Rx Power taking into account only the particular PropagationLossModel.
Definition: propagation-loss-model.cc:125
ns3::TypeId
a unique identifier for an interface.
Definition: type-id.h:59
ns3::TwoRayGroundPropagationLossModel::m_heightAboveZ
double m_heightAboveZ
antenna height above the node's Z coordinate
Definition: propagation-loss-model.h:470
ns3::FriisPropagationLossModel::GetSystemLoss
double GetSystemLoss(void) const
Definition: propagation-loss-model.cc:181
ns3::TwoRayGroundPropagationLossModel::m_minDistance
double m_minDistance
minimum distance for the model
Definition: propagation-loss-model.h:469
ns3::NakagamiPropagationLossModel
Nakagami-m fast fading propagation loss model.
Definition: propagation-loss-model.h:664
ns3::FixedRssLossModel::~FixedRssLossModel
virtual ~FixedRssLossModel()
Definition: propagation-loss-model.cc:783
ns3::NakagamiPropagationLossModel::operator=
NakagamiPropagationLossModel & operator=(const NakagamiPropagationLossModel &)
Copy constructor.
ns3::TwoRayGroundPropagationLossModel::m_systemLoss
double m_systemLoss
the system loss
Definition: propagation-loss-model.h:468
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::LogDistancePropagationLossModel::LogDistancePropagationLossModel
LogDistancePropagationLossModel(const LogDistancePropagationLossModel &)
Copy constructor.
ns3::FriisPropagationLossModel
a Friis propagation loss model
Definition: propagation-loss-model.h:268
ns3::FriisPropagationLossModel::FriisPropagationLossModel
FriisPropagationLossModel(const FriisPropagationLossModel &)
Copy constructor.
ns3::FriisPropagationLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: propagation-loss-model.cc:146
ns3::TwoRayGroundPropagationLossModel::m_frequency
double m_frequency
the carrier frequency
Definition: propagation-loss-model.h:467
ns3::LogDistancePropagationLossModel::CreateDefaultReference
static Ptr< PropagationLossModel > CreateDefaultReference(void)
Creates a default reference loss model.
ns3::MatrixPropagationLossModel::m_loss
std::map< MobilityPair, double > m_loss
Propagation loss between pair of nodes.
Definition: propagation-loss-model.h:825
ns3::TwoRayGroundPropagationLossModel::m_lambda
double m_lambda
the carrier wavelength
Definition: propagation-loss-model.h:466
ns3::PropagationLossModel::DoAssignStreams
virtual int64_t DoAssignStreams(int64_t stream)=0
Subclasses must implement this; those not using random variables can return zero.
ns3::MatrixPropagationLossModel::MobilityPair
std::pair< Ptr< MobilityModel >, Ptr< MobilityModel > > MobilityPair
Typedef: Mobility models pair.
Definition: propagation-loss-model.h:823
ns3::ThreeLogDistancePropagationLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: propagation-loss-model.cc:548
ns3::FriisPropagationLossModel::operator=
FriisPropagationLossModel & operator=(const FriisPropagationLossModel &)
Copy constructor.
ns3::NakagamiPropagationLossModel::DoCalcRxPower
double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
Returns the Rx Power taking into account only the particular PropagationLossModel.
Definition: propagation-loss-model.cc:701
ns3::LogDistancePropagationLossModel::LogDistancePropagationLossModel
LogDistancePropagationLossModel()
Definition: propagation-loss-model.cc:485
ns3::RandomPropagationLossModel
The propagation loss follows a random distribution.
Definition: propagation-loss-model.h:156
ns3::ThreeLogDistancePropagationLossModel
A log distance path loss propagation model with three distance fields.
Definition: propagation-loss-model.h:593
ns3::RangePropagationLossModel::m_range
double m_range
Maximum Transmission Range (meters)
Definition: propagation-loss-model.h:868
ns3::PropagationLossModel::CalcRxPower
double CalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
Returns the Rx Power taking into account all the PropagationLossModel(s) chained to the current one.
Definition: propagation-loss-model.cc:73
ns3::PropagationLossModel
Models the propagation loss through a transmission medium.
Definition: propagation-loss-model.h:50
ns3::FriisPropagationLossModel::SetSystemLoss
void SetSystemLoss(double systemLoss)
Definition: propagation-loss-model.cc:176
ns3::PropagationLossModel::GetNext
Ptr< PropagationLossModel > GetNext()
Gets the next PropagationLossModel in the chain of loss models that act on the signal.
Definition: propagation-loss-model.cc:67
ns3::PropagationLossModel::operator=
PropagationLossModel & operator=(const PropagationLossModel &)
Copy constructor.
ns3::LogDistancePropagationLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: propagation-loss-model.cc:459
ns3::RangePropagationLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: propagation-loss-model.cc:892
ns3::MatrixPropagationLossModel::~MatrixPropagationLossModel
virtual ~MatrixPropagationLossModel()
Definition: propagation-loss-model.cc:831
ns3::FriisPropagationLossModel::GetMinLoss
double GetMinLoss(void) const
Definition: propagation-loss-model.cc:191
ns3::FriisPropagationLossModel::m_minLoss
double m_minLoss
the minimum loss
Definition: propagation-loss-model.h:349
ns3::NakagamiPropagationLossModel::m_distance2
double m_distance2
Distance2.
Definition: propagation-loss-model.h:698
ns3::FriisPropagationLossModel::DoCalcRxPower
double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
Returns the Rx Power taking into account only the particular PropagationLossModel.
Definition: propagation-loss-model.cc:225
ns3::RangePropagationLossModel
The propagation loss depends only on the distance (range) between transmitter and receiver.
Definition: propagation-loss-model.h:839
ns3::RandomPropagationLossModel::DoAssignStreams
int64_t DoAssignStreams(int64_t stream) override
Subclasses must implement this; those not using random variables can return zero.
Definition: propagation-loss-model.cc:135
ns3::RandomPropagationLossModel::RandomPropagationLossModel
RandomPropagationLossModel()
Definition: propagation-loss-model.cc:115
ns3::TwoRayGroundPropagationLossModel::SetFrequency
void SetFrequency(double frequency)
Definition: propagation-loss-model.cc:347
ns3::TwoRayGroundPropagationLossModel::GetSystemLoss
double GetSystemLoss(void) const
Definition: propagation-loss-model.cc:326
ns3::FixedRssLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: propagation-loss-model.cc:765
ns3::RandomPropagationLossModel::m_variable
Ptr< RandomVariableStream > m_variable
random generator
Definition: propagation-loss-model.h:187
ns3::NakagamiPropagationLossModel::m_m0
double m_m0
m for distances smaller than Distance1
Definition: propagation-loss-model.h:700
ns3::RangePropagationLossModel::DoCalcRxPower
double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
Returns the Rx Power taking into account only the particular PropagationLossModel.
Definition: propagation-loss-model.cc:912
ns3::LogDistancePropagationLossModel::DoCalcRxPower
double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
Returns the Rx Power taking into account only the particular PropagationLossModel.
Definition: propagation-loss-model.cc:507
ns3::Ptr< PropagationLossModel >
ns3::FriisPropagationLossModel::m_lambda
double m_lambda
the carrier wavelength
Definition: propagation-loss-model.h:346
ns3::LogDistancePropagationLossModel::SetReference
void SetReference(double referenceDistance, double referenceLoss)
Set the reference path loss at a given distance.
Definition: propagation-loss-model.cc:495
ns3::FriisPropagationLossModel::DbmFromW
double DbmFromW(double w) const
Transforms a Watt value to Dbm.
Definition: propagation-loss-model.cc:218
ns3::RandomPropagationLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: propagation-loss-model.cc:102
ns3::MatrixPropagationLossModel::m_default
double m_default
default loss
Definition: propagation-loss-model.h:820
ns3::FixedRssLossModel::m_rss
double m_rss
the received signal strength
Definition: propagation-loss-model.h:760
ns3::FixedRssLossModel::DoAssignStreams
int64_t DoAssignStreams(int64_t stream) override
Subclasses must implement this; those not using random variables can return zero.
Definition: propagation-loss-model.cc:802
ns3::ThreeLogDistancePropagationLossModel::ThreeLogDistancePropagationLossModel
ThreeLogDistancePropagationLossModel(const ThreeLogDistancePropagationLossModel &)
Copy constructor.
ns3::NakagamiPropagationLossModel::m_m1
double m_m1
m for distances smaller than Distance2
Definition: propagation-loss-model.h:701
ns3::NakagamiPropagationLossModel::NakagamiPropagationLossModel
NakagamiPropagationLossModel(const NakagamiPropagationLossModel &)
Copy constructor.
ns3::TwoRayGroundPropagationLossModel::GetMinDistance
double GetMinDistance(void) const
Definition: propagation-loss-model.cc:336
ns3::TwoRayGroundPropagationLossModel::GetFrequency
double GetFrequency(void) const
Definition: propagation-loss-model.cc:355
ns3::Object
A base class which provides memory management and object aggregation.
Definition: object.h:88
ns3::MatrixPropagationLossModel::SetDefaultLoss
void SetDefaultLoss(double defaultLoss)
Set the default propagation loss (in dB, positive) to be used, infinity if not set.
Definition: propagation-loss-model.cc:836
ns3::NakagamiPropagationLossModel::NakagamiPropagationLossModel
NakagamiPropagationLossModel()
Definition: propagation-loss-model.cc:696
ns3::RangePropagationLossModel::DoAssignStreams
int64_t DoAssignStreams(int64_t stream) override
Subclasses must implement this; those not using random variables can return zero.
Definition: propagation-loss-model.cc:928
ns3::FriisPropagationLossModel::FriisPropagationLossModel
FriisPropagationLossModel()
Definition: propagation-loss-model.cc:172
ns3::ThreeLogDistancePropagationLossModel::m_exponent2
double m_exponent2
The exponent for the third field.
Definition: propagation-loss-model.h:631
ns3::PropagationLossModel::m_next
Ptr< PropagationLossModel > m_next
Next propagation loss model in the list.
Definition: propagation-loss-model.h:147
ns3::FriisPropagationLossModel::SetFrequency
void SetFrequency(double frequency)
Definition: propagation-loss-model.cc:197
ns3::NakagamiPropagationLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: propagation-loss-model.cc:650
ns3::PropagationLossModel::SetNext
void SetNext(Ptr< PropagationLossModel > next)
Enables a chain of loss models to act on the signal.
Definition: propagation-loss-model.cc:61
ns3::PropagationLossModel::PropagationLossModel
PropagationLossModel(const PropagationLossModel &)
Copy constructor.
ns3::NakagamiPropagationLossModel::DoAssignStreams
int64_t DoAssignStreams(int64_t stream) override
Subclasses must implement this; those not using random variables can return zero.
Definition: propagation-loss-model.cc:753
ns3::NakagamiPropagationLossModel::m_m2
double m_m2
m for distances greater than Distance2
Definition: propagation-loss-model.h:702
ns3::FriisPropagationLossModel::DbmToW
double DbmToW(double dbm) const
Transforms a Dbm value to Watt.
Definition: propagation-loss-model.cc:211
ns3::TwoRayGroundPropagationLossModel::TwoRayGroundPropagationLossModel
TwoRayGroundPropagationLossModel()
Definition: propagation-loss-model.cc:317
ns3::TwoRayGroundPropagationLossModel
a Two-Ray Ground propagation loss model ported from NS2
Definition: propagation-loss-model.h:381
ns3::ThreeLogDistancePropagationLossModel::ThreeLogDistancePropagationLossModel
ThreeLogDistancePropagationLossModel()
Definition: propagation-loss-model.cc:594
ns3::ThreeLogDistancePropagationLossModel::operator=
ThreeLogDistancePropagationLossModel & operator=(const ThreeLogDistancePropagationLossModel &)
Copy constructor.
ns3::RandomPropagationLossModel::RandomPropagationLossModel
RandomPropagationLossModel(const RandomPropagationLossModel &)
Copy constructor.
ns3::PropagationLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: propagation-loss-model.cc:42
ns3::TwoRayGroundPropagationLossModel::SetSystemLoss
void SetSystemLoss(double systemLoss)
Definition: propagation-loss-model.cc:321
ns3::ThreeLogDistancePropagationLossModel::m_exponent1
double m_exponent1
The exponent for the second field.
Definition: propagation-loss-model.h:630
ns3::MatrixPropagationLossModel::DoAssignStreams
int64_t DoAssignStreams(int64_t stream) override
Subclasses must implement this; those not using random variables can return zero.
Definition: propagation-loss-model.cc:882
ns3::LogDistancePropagationLossModel::m_exponent
double m_exponent
model exponent
Definition: propagation-loss-model.h:547
ns3::MatrixPropagationLossModel::MatrixPropagationLossModel
MatrixPropagationLossModel(const MatrixPropagationLossModel &)
Copy constructor.
ns3::ThreeLogDistancePropagationLossModel::m_referenceLoss
double m_referenceLoss
The reference loss at distance d0 (dB).
Definition: propagation-loss-model.h:633
ns3::LogDistancePropagationLossModel::GetPathLossExponent
double GetPathLossExponent(void) const
Definition: propagation-loss-model.cc:501
ns3::ThreeLogDistancePropagationLossModel::m_distance2
double m_distance2
Beginning of the third (far) distance field.
Definition: propagation-loss-model.h:627
ns3::LogDistancePropagationLossModel::m_referenceLoss
double m_referenceLoss
reference loss
Definition: propagation-loss-model.h:549
ns3::LogDistancePropagationLossModel
a log distance propagation model.
Definition: propagation-loss-model.h:494
ns3::FriisPropagationLossModel::m_systemLoss
double m_systemLoss
the system loss
Definition: propagation-loss-model.h:348
ns3::TwoRayGroundPropagationLossModel::TwoRayGroundPropagationLossModel
TwoRayGroundPropagationLossModel(const TwoRayGroundPropagationLossModel &)
Copy constructor.
ns3::LogDistancePropagationLossModel::operator=
LogDistancePropagationLossModel & operator=(const LogDistancePropagationLossModel &)
Copy constructor.
ns3::NakagamiPropagationLossModel::m_erlangRandomVariable
Ptr< ErlangRandomVariable > m_erlangRandomVariable
Erlang random variable.
Definition: propagation-loss-model.h:704
ns3::MatrixPropagationLossModel::MatrixPropagationLossModel
MatrixPropagationLossModel()
Definition: propagation-loss-model.cc:826
ns3::TwoRayGroundPropagationLossModel::DoCalcRxPower
double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
Returns the Rx Power taking into account only the particular PropagationLossModel.
Definition: propagation-loss-model.cc:375
ns3::RandomPropagationLossModel::operator=
RandomPropagationLossModel & operator=(const RandomPropagationLossModel &)
Copy constructor.
ns3::LogDistancePropagationLossModel::DoAssignStreams
int64_t DoAssignStreams(int64_t stream) override
Subclasses must implement this; those not using random variables can return zero.
Definition: propagation-loss-model.cc:538
ns3::TwoRayGroundPropagationLossModel::operator=
TwoRayGroundPropagationLossModel & operator=(const TwoRayGroundPropagationLossModel &)
Copy constructor.
ns3::ThreeLogDistancePropagationLossModel::m_distance1
double m_distance1
Beginning of the second (middle) distance field.
Definition: propagation-loss-model.h:626
ns3::FriisPropagationLossModel::m_frequency
double m_frequency
the carrier frequency
Definition: propagation-loss-model.h:347
ns3::RandomPropagationLossModel::~RandomPropagationLossModel
virtual ~RandomPropagationLossModel()
Definition: propagation-loss-model.cc:120
ns3::LogDistancePropagationLossModel::m_referenceDistance
double m_referenceDistance
reference distance
Definition: propagation-loss-model.h:548
ns3::PropagationLossModel::DoCalcRxPower
virtual double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const =0
Returns the Rx Power taking into account only the particular PropagationLossModel.
ns3::FixedRssLossModel::operator=
FixedRssLossModel & operator=(const FixedRssLossModel &)
Copy constructor.
ns3::TwoRayGroundPropagationLossModel::SetHeightAboveZ
void SetHeightAboveZ(double heightAboveZ)
Definition: propagation-loss-model.cc:341
ns3::NakagamiPropagationLossModel::m_gammaRandomVariable
Ptr< GammaRandomVariable > m_gammaRandomVariable
Gamma random variable.
Definition: propagation-loss-model.h:705
ns3::FriisPropagationLossModel::DoAssignStreams
int64_t DoAssignStreams(int64_t stream) override
Subclasses must implement this; those not using random variables can return zero.
Definition: propagation-loss-model.cc:275
ns3::RangePropagationLossModel::operator=
RangePropagationLossModel & operator=(const RangePropagationLossModel &)
Copy constructor.
ns3::LogDistancePropagationLossModel::SetPathLossExponent
void SetPathLossExponent(double n)
Definition: propagation-loss-model.cc:490
ns3::ThreeLogDistancePropagationLossModel::m_exponent0
double m_exponent0
The exponent for the first field.
Definition: propagation-loss-model.h:629
ns3::TwoRayGroundPropagationLossModel::SetMinDistance
void SetMinDistance(double minDistance)
Definition: propagation-loss-model.cc:331
ns3::PropagationLossModel::PropagationLossModel
PropagationLossModel()
Definition: propagation-loss-model.cc:51
ns3::FixedRssLossModel::DoCalcRxPower
double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
Returns the Rx Power taking into account only the particular PropagationLossModel.
Definition: propagation-loss-model.cc:794
ns3::FixedRssLossModel::FixedRssLossModel
FixedRssLossModel(const FixedRssLossModel &)
Copy constructor.
ns3::FixedRssLossModel
Return a constant received power level independent of the transmit power.
Definition: propagation-loss-model.h:722
ns3::ThreeLogDistancePropagationLossModel::DoAssignStreams
int64_t DoAssignStreams(int64_t stream) override
Subclasses must implement this; those not using random variables can return zero.
Definition: propagation-loss-model.cc:640
ns3::PropagationLossModel::AssignStreams
int64_t AssignStreams(int64_t stream)
If this loss model uses objects of type RandomVariableStream, set the stream numbers to the integers ...
Definition: propagation-loss-model.cc:86
ns3::MatrixPropagationLossModel::DoCalcRxPower
double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
Returns the Rx Power taking into account only the particular PropagationLossModel.
Definition: propagation-loss-model.cc:865
ns3::NakagamiPropagationLossModel::m_distance1
double m_distance1
Distance1.
Definition: propagation-loss-model.h:697
ns3::MatrixPropagationLossModel::operator=
MatrixPropagationLossModel & operator=(const MatrixPropagationLossModel &)
Copy constructor.
ns3::ThreeLogDistancePropagationLossModel::m_distance0
double m_distance0
Beginning of the first (near) distance field.
Definition: propagation-loss-model.h:625
ns3::FixedRssLossModel::FixedRssLossModel
FixedRssLossModel()
Definition: propagation-loss-model.cc:778
ns3::TwoRayGroundPropagationLossModel::DbmFromW
double DbmFromW(double w) const
Transforms a Watt value to Dbm.
Definition: propagation-loss-model.cc:368
ns3::FriisPropagationLossModel::SetMinLoss
void SetMinLoss(double minLoss)
Definition: propagation-loss-model.cc:186
ns3::MatrixPropagationLossModel
The propagation loss is fixed for each pair of nodes and doesn't depend on their actual positions.
Definition: propagation-loss-model.h:771
ns3::MatrixPropagationLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: propagation-loss-model.cc:812
ns3::MatrixPropagationLossModel::SetLoss
void SetLoss(Ptr< MobilityModel > a, Ptr< MobilityModel > b, double loss, bool symmetric=true)
Set loss (in dB, positive) between pair of ns-3 objects (typically, nodes).
Definition: propagation-loss-model.cc:842
ns3::TwoRayGroundPropagationLossModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: propagation-loss-model.cc:286
ns3::TwoRayGroundPropagationLossModel::DoAssignStreams
int64_t DoAssignStreams(int64_t stream) override
Subclasses must implement this; those not using random variables can return zero.
Definition: propagation-loss-model.cc:449
ns3::ThreeLogDistancePropagationLossModel::DoCalcRxPower
double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
Returns the Rx Power taking into account only the particular PropagationLossModel.
Definition: propagation-loss-model.cc:599
ns3::RangePropagationLossModel::RangePropagationLossModel
RangePropagationLossModel()
Definition: propagation-loss-model.cc:907
ns3::FriisPropagationLossModel::GetFrequency
double GetFrequency(void) const
Definition: propagation-loss-model.cc:205
ns3::TwoRayGroundPropagationLossModel::DbmToW
double DbmToW(double dbm) const
Transforms a Dbm value to Watt.
Definition: propagation-loss-model.cc:361
sample-rng-plot.n
n
Definition: sample-rng-plot.py:37
ns3::FixedRssLossModel::SetRss
void SetRss(double rss)
Definition: propagation-loss-model.cc:788
ns3::PropagationLossModel::~PropagationLossModel
virtual ~PropagationLossModel()
Definition: propagation-loss-model.cc:56
ns3::RangePropagationLossModel::RangePropagationLossModel
RangePropagationLossModel(const RangePropagationLossModel &)
Copy constructor.