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 SubBasin;
8class HydroUnit;
9class Brick;
10class Process;
11class Splitter;
12class TimeMachine;
13class Logger;
14struct BrickSettings;
15struct ProcessSettings;
16struct SplitterSettings;
17
19 public:
20 ModelBuilder(SubBasin* subBasin, TimeMachine* timer, Logger* logger);
21
22 void BuildModelStructure(SettingsModel& modelSettings);
23 void UpdateSubBasinParameters(SettingsModel& modelSettings);
24 void UpdateHydroUnitsParameters(SettingsModel& modelSettings);
25 void ConnectLoggerToValues(SettingsModel& modelSettings);
26
27 private:
28 SubBasin* _subBasin;
29 TimeMachine* _timer;
30 Logger* _logger;
31
32 void CreateSubBasinComponents(SettingsModel& modelSettings);
33 void CreateHydroUnitsComponents(SettingsModel& modelSettings);
34 void CreateHydroUnitBrick(SettingsModel& modelSettings, HydroUnit* unit, int iBrick);
35 void LinkSurfaceComponentsParents(SettingsModel& modelSettings, HydroUnit* unit);
36 void LinkSubBasinProcessesTargetBricks(SettingsModel& modelSettings);
37 void LinkHydroUnitProcessesTargetBricks(SettingsModel& modelSettings, HydroUnit* unit);
38 void BuildForcingConnections(const BrickSettings& brickSettings, HydroUnit* unit, Brick* brick);
39 void BuildForcingConnections(const ProcessSettings& processSettings, HydroUnit* unit, Process* process);
40 void BuildForcingConnections(const SplitterSettings& splitterSettings, HydroUnit* unit, Splitter* splitter);
41 void BuildSubBasinBricksFluxes(SettingsModel& modelSettings);
42 void BuildHydroUnitBricksFluxes(SettingsModel& modelSettings, HydroUnit* unit);
43 void BuildSubBasinSplittersFluxes(SettingsModel& modelSettings);
44 void BuildHydroUnitSplittersFluxes(SettingsModel& modelSettings, HydroUnit* unit);
45};
46
47#endif // HYDROBRICKS_MODEL_BUILDER_H
Definition Brick.h:24
Definition HydroUnit.h:18
Definition Logger.h:8
Definition ModelBuilder.h:18
Definition Process.h:16
Definition SettingsModel.h:68
Definition Splitter.h:13
Definition SubBasin.h:14
Definition TimeMachine.h:9
Definition SettingsModel.h:47
Definition SettingsModel.h:29
Definition SettingsModel.h:38