21 #include "ns3/core-module.h" 
   22 #include "ns3/network-module.h" 
   23 #include "ns3/mobility-module.h" 
   24 #include "ns3/lte-module.h" 
   25 #include "ns3/config-store.h" 
   26 #include <ns3/buildings-propagation-loss-model.h> 
   27 #include <ns3/buildings-helper.h> 
   28 #include <ns3/radio-environment-map-helper.h> 
   38 main (
int argc, 
char *argv[])
 
   41   cmd.
Parse (argc, argv);
 
   46   cmd.
Parse (argc, argv);
 
   50   double nodeHeight = 1.5;
 
   51   double roomHeight = 3;
 
   52   double roomLength = 500;
 
   55   uint32_t nEnb = nRooms*nRooms + 4;
 
   66   vector < NodeContainer > ueNodes;
 
   68   oneSectorNodes.
Create (nEnb-3);
 
   69   threeSectorNodes.
Create (3);
 
   71   enbNodes.
Add (oneSectorNodes);
 
   72   enbNodes.
Add (threeSectorNodes);
 
   74   for (uint32_t i = 0; i < nEnb; i++)
 
   78       ueNodes.push_back (ueNode);
 
   82   vector<Vector> enbPosition;
 
   85   building = Create<Building> ();
 
   87                                 0.0, nRooms * roomLength,
 
   91   building->SetNFloors (1);
 
   92   building->SetNRoomsX (nRooms);
 
   93   building->SetNRoomsY (nRooms);
 
   96   uint32_t plantedEnb = 0;
 
   97   for (uint32_t row = 0; row < nRooms; row++)
 
   99       for (uint32_t column = 0; column < nRooms; column++, plantedEnb++)
 
  101           Vector v (roomLength * (column + 0.5),
 
  102                     roomLength * (row + 0.5),
 
  104           positionAlloc->
Add (v);
 
  105           enbPosition.push_back (v);
 
  112   Vector v (500, 3000, nodeHeight);
 
  113   positionAlloc->
Add (v);
 
  114   enbPosition.push_back (v);
 
  115   mobility.
Install (ueNodes.at(plantedEnb));
 
  119   for (uint32_t index = 0; index < 3; index++, plantedEnb++)
 
  121       Vector v (500, 2000, nodeHeight);
 
  122       positionAlloc->
Add (v);
 
  123       enbPosition.push_back (v);
 
  124       mobility.
Install (ueNodes.at(plantedEnb));
 
  132   for (uint32_t i = 0; i < nEnb; i++)
 
  140       positionAlloc = CreateObject<ListPositionAllocator> ();
 
  141       for (uint32_t j = 0; j < nUe; j++)
 
  145               positionAlloc->
Add (
Vector (enbPosition.at(i).x + 10, enbPosition.at(i).y, nodeHeight));
 
  147           else if ( i == nEnb - 2 )
 
  149               positionAlloc->
Add (
Vector (enbPosition.at(i).x - std::sqrt (10), enbPosition.at(i).y + std::sqrt (10), nodeHeight));
 
  151           else if ( i == nEnb - 1 )
 
  153               positionAlloc->
Add (
Vector (enbPosition.at(i).x - std::sqrt (10), enbPosition.at(i).y - std::sqrt (10), nodeHeight));
 
  161       mobility.
Install (ueNodes.at(i));
 
  166   vector < NetDeviceContainer > ueDevs;
 
  195   for (uint32_t i = 0; i < nEnb; i++)
 
  198       ueDevs.push_back (ueDev);
 
  199       lteHelper->
Attach (ueDev, enbDevs.
Get (i));