1#ifndef HYDROBRICKS_MODEL_HYDRO_H
2#define HYDROBRICKS_MODEL_HYDRO_H
6#include "ActionsManager.h"
10#include "SettingsModel.h"
12#include "TimeSeries.h"
51 [[nodiscard]]
bool IsValid()
const;
73 [[nodiscard]]
bool Run();
133 double GetTotalGlacierStorageChanges()
const;
174 bool CreateTimeSeries(
const string& varName,
const axd& time,
const axi& ids,
const axxd& data);
205 _subBasin = subBasin;
241 return &_actionsManager;
251 std::vector<std::unique_ptr<TimeSeries>> _timeSeries;
258 void CreateHydroUnitsComponents(
SettingsModel& modelSettings);
264 void UpdateHydroUnitsParameters(
SettingsModel& modelSettings);
268 void LinkSubBasinProcessesTargetBricks(
SettingsModel& modelSettings);
278 void BuildSubBasinBricksFluxes(
SettingsModel& modelSettings);
282 void BuildSubBasinSplittersFluxes(
SettingsModel& modelSettings);
288 bool InitializeTimeSeries();
290 bool UpdateForcing();
Definition ActionsManager.h:11
Definition HydroUnit.h:18
Definition ModelHydro.h:14
bool Initialize(SettingsModel &modelSettings, SettingsBasin &basinSettings, bool checkProcesses=true)
Definition ModelHydro.cpp:38
TimeMachine * GetTimeMachine()
Definition ModelHydro.h:213
Logger * GetLogger()
Definition ModelHydro.h:231
void Validate() const
Definition ModelHydro.cpp:900
bool AttachTimeSeriesToHydroUnits()
Definition ModelHydro.cpp:1035
bool InitializeWithBasin(SettingsModel &modelSettings, SettingsBasin &basinSettings)
Definition ModelHydro.cpp:26
void SaveAsInitialState()
Definition ModelHydro.cpp:944
bool IsValid() const
Definition ModelHydro.cpp:894
double GetTotalWaterStorageChanges() const
Definition ModelHydro.cpp:964
bool AddTimeSeries(std::unique_ptr< TimeSeries > timeSeries)
Definition ModelHydro.cpp:976
Processor * GetProcessor()
Definition ModelHydro.h:222
bool ForcingLoaded()
Definition ModelHydro.cpp:904
bool Run()
Definition ModelHydro.cpp:908
bool DumpOutputs(const string &path)
Definition ModelHydro.cpp:948
void UpdateParameters(SettingsModel &modelSettings)
Definition ModelHydro.cpp:92
int GetActionCount() const
Definition ModelHydro.cpp:1009
double GetTotalSnowStorageChanges() const
Definition ModelHydro.cpp:968
bool AddAction(Action *action)
Definition ModelHydro.cpp:1005
ActionsManager * GetActionsManager()
Definition ModelHydro.h:240
double GetTotalET() const
Definition ModelHydro.cpp:960
SubBasin * GetSubBasin() const
Definition ModelHydro.h:193
void SetSubBasin(SubBasin *subBasin)
Definition ModelHydro.h:202
bool CreateTimeSeries(const string &varName, const axd &time, const axi &ids, const axxd &data)
Definition ModelHydro.cpp:1017
void ClearTimeSeries()
Definition ModelHydro.cpp:1031
double GetTotalOutletDischarge() const
Definition ModelHydro.cpp:956
int GetSporadicActionItemCount() const
Definition ModelHydro.cpp:1013
axd GetOutletDischarge() const
Definition ModelHydro.cpp:952
void Reset()
Definition ModelHydro.cpp:937
Definition ParametersUpdater.h:8
Definition Processor.h:12
Definition SettingsBasin.h:47
Definition SettingsModel.h:68
Definition TimeMachine.h:9
Definition SettingsModel.h:47
Definition SettingsModel.h:29
Definition SettingsModel.h:38