1#ifndef HYDROBRICKS_RIVER_NETWORK_H
2#define HYDROBRICKS_RIVER_NETWORK_H
5#include <unordered_map>
10#include "SettingsBasin.h"
11#include "SettingsModel.h"
45 return static_cast<int>(_subbasins.size());
184 std::vector<std::unique_ptr<Subbasin>> _subbasins;
185 std::unordered_map<int, Subbasin*> _subbasinMap;
186 std::unordered_map<int, HydroUnit*> _hydroUnitMap;
187 std::vector<Subbasin*> _order;
189 std::vector<std::unique_ptr<Reach>> _reaches;
190 std::unordered_map<const Subbasin*, std::vector<Subbasin*>> _upstream;
204 void BuildProcessingOrder();
209 void ComputeDrainedAreas();
Definition HydroUnit.h:18
Definition RiverNetwork.h:24
void SetChannelRouting(const ChannelRoutingSettings &settings)
Definition RiverNetwork.cpp:118
double GetTotalArea() const
Definition RiverNetwork.cpp:259
vecDouble GetSubbasinDrainedAreas() const
Definition RiverNetwork.cpp:250
Reach * GetReach(size_t index) const
Definition RiverNetwork.cpp:145
void SaveAsInitialState()
Definition RiverNetwork.cpp:139
vecInt GetSubbasinIds() const
Definition RiverNetwork.cpp:223
void Reset()
Definition RiverNetwork.cpp:133
vecDouble GetSubbasinLocalAreas() const
Definition RiverNetwork.cpp:241
Subbasin * GetSubbasinById(int id) const
Definition RiverNetwork.cpp:194
const std::vector< Subbasin * > & GetUpstreamSubbasins(const Subbasin *subbasin) const
Definition RiverNetwork.cpp:202
int GetHydroUnitCount() const
Definition RiverNetwork.cpp:215
int GetSubbasinCount() const
Definition RiverNetwork.h:44
vecInt GetSubbasinDownstreamIds() const
Definition RiverNetwork.cpp:232
const std::vector< Subbasin * > & GetProcessingOrder() const
Definition RiverNetwork.h:78
ModelResult Initialize(SettingsBasin &basinSettings)
Definition RiverNetwork.cpp:5
ModelResult AssignFractions(SettingsBasin &basinSettings)
Definition RiverNetwork.cpp:124
HydroUnit * GetHydroUnitById(int id) const
Definition RiverNetwork.cpp:206
Subbasin * GetOutlet() const
Definition RiverNetwork.h:69
Subbasin * GetSubbasin(size_t index) const
Definition RiverNetwork.cpp:189
void TransferInflow(Subbasin *subbasin, double timeStepInDays)
Definition RiverNetwork.cpp:110
Definition SettingsBasin.h:62
Definition SettingsModel.h:23