src/buildings/model/buildings-propagation-loss-model.h
author Marco Miozzo <marco.miozzo@cttc.es>
Wed, 28 Sep 2011 16:48:53 +0200
changeset 8248 986f7db9f056
parent 8236 src/propagation/model/buildings-propagation-loss-model.h@5c8dc805e013
child 8283 c15e85715f08
permissions -rw-r--r--
Move Buildings related class to buildings folder
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     2
/*
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     3
 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     4
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     8
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    12
 * GNU General Public License for more details.
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    13
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    17
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    18
 * Author: Marco Miozzo  <marco.miozzo@cttc.es>
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    19
 * 
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    20
 */
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    21
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    22
#ifndef BUILDINGS_PROPAGATION_LOSS_MODEL_H_
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    23
#define BUILDINGS_PROPAGATION_LOSS_MODEL_H_
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    24
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    25
#include "ns3/nstime.h"
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    26
#include "ns3/propagation-loss-model.h"
8185
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
    27
#include <ns3/building.h>
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
    28
#include <ns3/buildings-mobility-model.h>
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    29
8216
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
    30
// #include <ns3/jakes-fading-loss-model.h>
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
    31
// #include <ns3/shadowing-loss-model.h>
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
    32
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    33
namespace ns3 {
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    34
8216
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
    35
class ShadowingLossModel;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
    36
class JakesFadingLossModel;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
    37
  
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    38
/**
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    39
 * \ingroup propagation
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    40
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    41
 *  \brief The Building-Propagation-Model is a compound of different models able to evaluate the pathloss from 200 to 2600 MHz, in different environments and with buildings (i.e., indoor and outdoor communications).
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    42
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    43
 *  This model includes Hata model, COST231, ITU-R P.1411 (short range
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    44
 *  communications), ITU-R P.1238 (indoor communications). 
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    45
 *  Building-Propagation-Model properly combines the models above in order
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    46
 *  to be able to evaluate the pathloss under different scenarios, in detail:
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    47
 *  - Environments: urban, suburban, open-areas;
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    48
 *  - frequency: from 200 uo to 2600 MHz
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    49
 *  - short range communications vs long range communications
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    50
 *  - Node position respect to buildings: indoor, outdoor and hybrid (indoor <-> outdoor)
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    51
 *  - Building penetretation loss
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    52
 *  - floors, etc...
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    53
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    54
 *  Frequency: 200 MHz to 2000 MHz
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    55
 *  Link Distance:up to 20 km
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    56
 *  Short/long distance commutation: 1 Km
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    57
 *  \warning This model works with BuildingsMobilityModel
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    58
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    59
 */
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    60
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    61
class BuildingsPropagationLossModel : public PropagationLossModel
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    62
{
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    63
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    64
public:
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    65
  static TypeId GetTypeId (void);
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    66
  BuildingsPropagationLossModel ();
8216
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
    67
  ~BuildingsPropagationLossModel ();
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    68
  enum Environment
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    69
  {
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    70
    Urban, SubUrban, OpenAreas
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    71
  };
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    72
  
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    73
  enum CitySize
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    74
  {
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    75
    Small, Medium, Large
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    76
  };
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    77
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    78
  /**
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    79
   * \param a the mobility model of the source
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    80
   * \param b the mobility model of the destination
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    81
   * \returns the propagation loss (in dBm)
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    82
   */
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    83
  double GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    84
  void SetEnvironment (Environment env);
8206
964bd6f3afe3 Debug and verification of pathloss models COST231, ITU1411 LOS, ITU1411 NLOS over rooftop
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8199
diff changeset
    85
  void SetCitySize (CitySize size);
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    86
  void SetLambda (double lambda);
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    87
  void SetMinDistance (double minDistance);
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    88
  Environment GetEnvironment (void) const;
8206
964bd6f3afe3 Debug and verification of pathloss models COST231, ITU1411 LOS, ITU1411 NLOS over rooftop
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8199
diff changeset
    89
  CitySize GetCitySize (void) const;
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    90
  double GetMinDistance (void) const;
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    91
  double GetLambda (void) const;
8236
5c8dc805e013 Update BuildingPropagationModel lambda configuration
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8216
diff changeset
    92
//   void SetLambda (double frequency, double speed);
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    93
  
8216
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
    94
  
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    95
private:
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    96
  virtual double DoCalcRxPower (double txPowerDbm, Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
8185
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
    97
  double OkumuraHata (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const;
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
    98
  double ItuR1411 (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const;
8197
d30c889fb0c2 Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8185
diff changeset
    99
  double ItuR1411Los (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const;
d30c889fb0c2 Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8185
diff changeset
   100
  double ItuR1411NlosOverRooftop (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const;
8208
20a270bed353 Basic compound test implemented (single pathloss models, no combination)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8206
diff changeset
   101
//   double ItuR1411NlosStreetCanyons (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const;
8185
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   102
  double ItuR1238 (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const;
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   103
  double BEWPL (Ptr<BuildingsMobilityModel> a) const;
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   104
  
8208
20a270bed353 Basic compound test implemented (single pathloss models, no combination)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8206
diff changeset
   105
  double HeightGain (Ptr<BuildingsMobilityModel> n) const;
20a270bed353 Basic compound test implemented (single pathloss models, no combination)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8206
diff changeset
   106
  
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   107
  double C;  // OH loss coefficient for the environment
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   108
  double N;  // ITU-R P.1238: power loss coefficient
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   109
  double m_lambda;
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   110
  Environment m_environment;
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   111
  CitySize m_citySize;
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   112
  double m_minDistance; // in meter
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   113
  double m_frequency; // frequency in MHz
8197
d30c889fb0c2 Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8185
diff changeset
   114
  double m_rooftopHeight; // in meter (used to discriminate OH and short range canyoning)
8199
c4a088b91ec8 Add propagation within street canyons to NLOS ITU1411 in BuildingsPropagationLossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8197
diff changeset
   115
  double m_itu1411NlosThreshold; // in meters (switch Los -> NLoS)
8208
20a270bed353 Basic compound test implemented (single pathloss models, no combination)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8206
diff changeset
   116
  double m_itu1411DistanceThreshold; // in meters (above infinite loss)
8197
d30c889fb0c2 Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8185
diff changeset
   117
  double m_streetsOrientation; // in degrees [0,90]
d30c889fb0c2 Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8185
diff changeset
   118
  double m_streetsWidth; // in meters
d30c889fb0c2 Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8185
diff changeset
   119
  double m_buildingsExtend; // in meters
d30c889fb0c2 Add NLOS over rooftops propagation model to BuildingsPropagationLossModel class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8185
diff changeset
   120
  double m_buildingSeparation; // in meters
8216
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   121
  
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   122
  // the shadowing tx/rx pairs management has been inspired by the
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   123
  // JakesFadingLossModel developed by Federico Maguolo (see jakes-propagation-model.h/cc)
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   124
  class ShadowingLoss;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   125
  friend class ShadowingLoss;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   126
  typedef std::vector<ShadowingLoss *> DestinationList;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   127
  struct PairsSet {
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   128
    Ptr<MobilityModel> sender;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   129
    DestinationList receivers;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   130
  };
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   131
  typedef std::vector<PairsSet *> PairsList;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   132
  double EvaluateSigma (Ptr<BuildingsMobilityModel> a, Ptr<BuildingsMobilityModel> b) const;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   133
  
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   134
  
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   135
  double m_shadowingSigmaExtWalls;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   136
  double m_shadowingSigmaOutdoor;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   137
  double m_shadowingSigmaIndoor;
e16fcf31809f Shadowing model introduced in BuildingPathlossModel
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8208
diff changeset
   138
  mutable PairsList m_shadowingPairs;
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   139
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   140
};
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   141
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   142
}
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   143
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   144
#endif /* COST231PROPAGATIONMODEL_H_ */