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);
204 _subBasin = subBasin;
240 return &_actionsManager;
250 std::vector<std::unique_ptr<TimeSeries>> _timeSeries;
257 void CreateHydroUnitsComponents(
SettingsModel& modelSettings);
263 void UpdateHydroUnitsParameters(
SettingsModel& modelSettings);
267 void LinkSubBasinProcessesTargetBricks(
SettingsModel& modelSettings);
277 void BuildSubBasinBricksFluxes(
SettingsModel& modelSettings);
281 void BuildSubBasinSplittersFluxes(
SettingsModel& modelSettings);
287 bool InitializeTimeSeries();
289 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:212
Logger * GetLogger()
Definition ModelHydro.h:230
void Validate() const
Definition ModelHydro.cpp:906
bool AttachTimeSeriesToHydroUnits()
Definition ModelHydro.cpp:1041
bool InitializeWithBasin(SettingsModel &modelSettings, SettingsBasin &basinSettings)
Definition ModelHydro.cpp:26
void SaveAsInitialState()
Definition ModelHydro.cpp:950
bool IsValid() const
Definition ModelHydro.cpp:900
double GetTotalWaterStorageChanges() const
Definition ModelHydro.cpp:970
bool AddTimeSeries(std::unique_ptr< TimeSeries > timeSeries)
Definition ModelHydro.cpp:982
Processor * GetProcessor()
Definition ModelHydro.h:221
bool ForcingLoaded()
Definition ModelHydro.cpp:910
bool Run()
Definition ModelHydro.cpp:914
bool DumpOutputs(const string &path)
Definition ModelHydro.cpp:954
void UpdateParameters(SettingsModel &modelSettings)
Definition ModelHydro.cpp:93
int GetActionCount() const
Definition ModelHydro.cpp:1015
double GetTotalSnowStorageChanges() const
Definition ModelHydro.cpp:974
bool AddAction(Action *action)
Definition ModelHydro.cpp:1011
ActionsManager * GetActionsManager()
Definition ModelHydro.h:239
double GetTotalET() const
Definition ModelHydro.cpp:966
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:1023
void ClearTimeSeries()
Definition ModelHydro.cpp:1037
double GetTotalOutletDischarge() const
Definition ModelHydro.cpp:962
int GetSporadicActionItemCount() const
Definition ModelHydro.cpp:1019
axd GetOutletDischarge() const
Definition ModelHydro.cpp:958
void Reset()
Definition ModelHydro.cpp:943
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