A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
buildings-propagation-loss-model.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011, 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
* Author: Marco Miozzo <marco.miozzo@cttc.es>
18
* Nicola Baldo <nbaldo@cttc.es>
19
*
20
*/
21
22
#ifndef BUILDINGS_PROPAGATION_LOSS_MODEL_H_
23
#define BUILDINGS_PROPAGATION_LOSS_MODEL_H_
24
25
#include "
building.h
"
26
#include "
mobility-building-info.h
"
27
28
#include "ns3/nstime.h"
29
#include "ns3/propagation-loss-model.h"
30
#include "ns3/random-variable-stream.h"
31
32
namespace
ns3
33
{
34
35
class
ShadowingLossModel;
36
class
JakesFadingLossModel;
37
56
class
BuildingsPropagationLossModel
:
public
PropagationLossModel
57
{
58
public
:
63
static
TypeId
GetTypeId
();
64
65
BuildingsPropagationLossModel
();
71
virtual
double
GetLoss
(
Ptr<MobilityModel>
a,
Ptr<MobilityModel>
b)
const
= 0;
72
73
// inherited from PropagationLossModel
74
double
DoCalcRxPower
(
double
txPowerDbm,
75
Ptr<MobilityModel>
a,
76
Ptr<MobilityModel>
b)
const override
;
77
78
protected
:
84
double
ExternalWallLoss
(
Ptr<MobilityBuildingInfo>
a)
const
;
90
double
HeightLoss
(
Ptr<MobilityBuildingInfo>
n)
const
;
97
double
InternalWallsLoss
(
Ptr<MobilityBuildingInfo>
a,
Ptr<MobilityBuildingInfo>
b)
const
;
98
105
double
GetShadowing
(
Ptr<MobilityModel>
a,
Ptr<MobilityModel>
b)
const
;
106
107
double
m_lossInternalWall
;
108
114
class
ShadowingLoss
115
{
116
public
:
117
ShadowingLoss
();
123
ShadowingLoss
(
double
shadowingValue,
Ptr<MobilityModel>
receiver);
127
double
GetLoss
()
const
;
131
Ptr<MobilityModel>
GetReceiver
()
const
;
132
133
protected
:
134
double
m_shadowingValue
;
135
Ptr<MobilityModel>
m_receiver
;
136
};
137
139
mutable
std::map<Ptr<MobilityModel>, std::map<Ptr<MobilityModel>,
ShadowingLoss
>>
140
m_shadowingLossMap
;
147
double
EvaluateSigma
(
Ptr<MobilityBuildingInfo>
a,
Ptr<MobilityBuildingInfo>
b)
const
;
148
151
double
m_shadowingSigmaExtWalls
;
154
double
m_shadowingSigmaOutdoor
;
157
double
m_shadowingSigmaIndoor
;
158
Ptr<NormalRandomVariable>
m_randVariable
;
159
160
int64_t
DoAssignStreams
(int64_t stream)
override
;
161
};
162
163
}
// namespace ns3
164
165
#endif
/* BUILDINGS_PROPAGATION_LOSS_MODEL_H_ */
building.h
ns3::BuildingsPropagationLossModel::ShadowingLoss
This model allows the computation of shadowing loss.
Definition:
buildings-propagation-loss-model.h:115
ns3::BuildingsPropagationLossModel::ShadowingLoss::ShadowingLoss
ShadowingLoss()
Definition:
buildings-propagation-loss-model.cc:42
ns3::BuildingsPropagationLossModel::ShadowingLoss::GetReceiver
Ptr< MobilityModel > GetReceiver() const
Definition:
buildings-propagation-loss-model.cc:61
ns3::BuildingsPropagationLossModel::ShadowingLoss::m_shadowingValue
double m_shadowingValue
Shadowing value.
Definition:
buildings-propagation-loss-model.h:134
ns3::BuildingsPropagationLossModel::ShadowingLoss::m_receiver
Ptr< MobilityModel > m_receiver
The receiver mobility model.
Definition:
buildings-propagation-loss-model.h:135
ns3::BuildingsPropagationLossModel::ShadowingLoss::GetLoss
double GetLoss() const
Definition:
buildings-propagation-loss-model.cc:55
ns3::BuildingsPropagationLossModel
This model provides means for simulating the following propagation phenomena in the presence of build...
Definition:
buildings-propagation-loss-model.h:57
ns3::BuildingsPropagationLossModel::DoCalcRxPower
double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
PropagationLossModel.
Definition:
buildings-propagation-loss-model.cc:225
ns3::BuildingsPropagationLossModel::m_shadowingLossMap
std::map< Ptr< MobilityModel >, std::map< Ptr< MobilityModel >, ShadowingLoss > > m_shadowingLossMap
Map of the shadowng loss.
Definition:
buildings-propagation-loss-model.h:140
ns3::BuildingsPropagationLossModel::GetShadowing
double GetShadowing(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
Calculate the shadowing loss.
Definition:
buildings-propagation-loss-model.cc:157
ns3::BuildingsPropagationLossModel::HeightLoss
double HeightLoss(Ptr< MobilityBuildingInfo > n) const
Calculate the height loss.
Definition:
buildings-propagation-loss-model.cc:137
ns3::BuildingsPropagationLossModel::m_shadowingSigmaOutdoor
double m_shadowingSigmaOutdoor
Standard deviation of the normal distribution used to calculate the shadowing for outdoor nodes.
Definition:
buildings-propagation-loss-model.h:154
ns3::BuildingsPropagationLossModel::GetLoss
virtual double GetLoss(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const =0
ns3::BuildingsPropagationLossModel::m_shadowingSigmaExtWalls
double m_shadowingSigmaExtWalls
Standard deviation of the normal distribution used to calculate the shadowing due to ext walls.
Definition:
buildings-propagation-loss-model.h:151
ns3::BuildingsPropagationLossModel::m_shadowingSigmaIndoor
double m_shadowingSigmaIndoor
Standard deviation of the normal distribution used to calculate the shadowing for indoor nodes.
Definition:
buildings-propagation-loss-model.h:157
ns3::BuildingsPropagationLossModel::ExternalWallLoss
double ExternalWallLoss(Ptr< MobilityBuildingInfo > a) const
Calculate the external wall loss.
Definition:
buildings-propagation-loss-model.cc:113
ns3::BuildingsPropagationLossModel::BuildingsPropagationLossModel
BuildingsPropagationLossModel()
Definition:
buildings-propagation-loss-model.cc:107
ns3::BuildingsPropagationLossModel::DoAssignStreams
int64_t DoAssignStreams(int64_t stream) override
Assign a fixed random variable stream number to the random variables used by this model.
Definition:
buildings-propagation-loss-model.cc:233
ns3::BuildingsPropagationLossModel::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition:
buildings-propagation-loss-model.cc:67
ns3::BuildingsPropagationLossModel::m_lossInternalWall
double m_lossInternalWall
loss from internal walls (in dBm)
Definition:
buildings-propagation-loss-model.h:107
ns3::BuildingsPropagationLossModel::EvaluateSigma
double EvaluateSigma(Ptr< MobilityBuildingInfo > a, Ptr< MobilityBuildingInfo > b) const
Calculate the Standard deviation of the normal distribution used to calculate the shadowing.
Definition:
buildings-propagation-loss-model.cc:193
ns3::BuildingsPropagationLossModel::m_randVariable
Ptr< NormalRandomVariable > m_randVariable
Random variable.
Definition:
buildings-propagation-loss-model.h:158
ns3::BuildingsPropagationLossModel::InternalWallsLoss
double InternalWallsLoss(Ptr< MobilityBuildingInfo > a, Ptr< MobilityBuildingInfo > b) const
Calculate the internal wall loss.
Definition:
buildings-propagation-loss-model.cc:147
ns3::PropagationLossModel
Models the propagation loss through a transmission medium.
Definition:
propagation-loss-model.h:56
ns3::Ptr< MobilityModel >
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:59
mobility-building-info.h
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
buildings
model
buildings-propagation-loss-model.h
Generated on Sun Mar 3 2024 17:10:54 for ns-3 by
1.9.1