hydrobricks
Loading...
Searching...
No Matches
ModelBuilder.h
1#ifndef HYDROBRICKS_MODEL_BUILDER_H
2#define HYDROBRICKS_MODEL_BUILDER_H
3
4#include "Includes.h"
5
6class SettingsModel;
7class SettingsBasin;
8class SubBasin;
9class HydroUnit;
10class Brick;
11class Process;
12class Splitter;
13class TimeMachine;
14class Logger;
15struct BrickSettings;
16struct ProcessSettings;
17struct SplitterSettings;
18
20 public:
21 ModelBuilder(SubBasin* subBasin, TimeMachine* timer, Logger* logger);
22
31 void AssignHydroUnitStructures(SettingsModel& modelSettings, SettingsBasin& basinSettings);
32
40 void BuildModelStructure(SettingsModel& modelSettings);
41
48 void UpdateSubBasinParameters(SettingsModel& modelSettings);
49
57 void UpdateHydroUnitsParameters(SettingsModel& modelSettings);
58
65 void ConnectLoggerToValues(SettingsModel& modelSettings);
66
67 private:
68 SubBasin* _subBasin;
69 TimeMachine* _timer;
70 Logger* _logger;
71
72 void CreateSubBasinComponents(SettingsModel& modelSettings);
73 void CreateHydroUnitsComponents(SettingsModel& modelSettings);
74 void CreateHydroUnitBrick(SettingsModel& modelSettings, HydroUnit* unit, int iBrick);
75 void LinkSurfaceComponentsParents(SettingsModel& modelSettings, HydroUnit* unit);
76 void LinkSubBasinProcessesTargetBricks(SettingsModel& modelSettings);
77 void LinkHydroUnitProcessesTargetBricks(SettingsModel& modelSettings, HydroUnit* unit);
78 std::vector<Brick*> FindLandCoversFeeding(const string& targetName, HydroUnit* unit, SettingsModel& modelSettings);
79 void BuildForcingConnections(const BrickSettings& brickSettings, HydroUnit* unit, Brick* brick);
80 void BuildForcingConnections(const ProcessSettings& processSettings, HydroUnit* unit, Process* process);
81 void BuildForcingConnections(const SplitterSettings& splitterSettings, HydroUnit* unit, Splitter* splitter);
82 void BuildSubBasinBricksFluxes(SettingsModel& modelSettings);
83 void BuildHydroUnitBricksFluxes(SettingsModel& modelSettings, HydroUnit* unit);
84 void BuildSubBasinSplittersFluxes(SettingsModel& modelSettings);
85 void BuildHydroUnitSplittersFluxes(SettingsModel& modelSettings, HydroUnit* unit);
86};
87
88#endif // HYDROBRICKS_MODEL_BUILDER_H
Definition Brick.h:22
Definition HydroUnit.h:18
Definition Logger.h:8
Definition ModelBuilder.h:19
void AssignHydroUnitStructures(SettingsModel &modelSettings, SettingsBasin &basinSettings)
Definition ModelBuilder.cpp:36
void UpdateHydroUnitsParameters(SettingsModel &modelSettings)
Definition ModelBuilder.cpp:265
void BuildModelStructure(SettingsModel &modelSettings)
Definition ModelBuilder.cpp:99
void ConnectLoggerToValues(SettingsModel &modelSettings)
Definition ModelBuilder.cpp:729
void UpdateSubBasinParameters(SettingsModel &modelSettings)
Definition ModelBuilder.cpp:242
Definition Process.h:16
Definition SettingsBasin.h:47
Definition SettingsModel.h:70
Definition Splitter.h:13
Definition SubBasin.h:14
Definition TimeMachine.h:9
Definition SettingsModel.h:48
Definition SettingsModel.h:30
Definition SettingsModel.h:39