hydrobricks
Loading...
Searching...
No Matches
ProcessOutflowSplit.h
1#ifndef HYDROBRICKS_PROCESS_OUTFLOW_SPLIT_H
2#define HYDROBRICKS_PROCESS_OUTFLOW_SPLIT_H
3
4#include "Forcing.h"
5#include "Includes.h"
6#include "ProcessOutflow.h"
7
21 public:
22 explicit ProcessOutflowSplit(WaterContainer* container);
23
24 ~ProcessOutflowSplit() override = default;
25
31 static void RegisterProcessSettings(SettingsModel* modelSettings);
32
39 [[nodiscard]] bool IsValid() const override;
40
44 void SetParameters(const ProcessSettings& processSettings) override;
45
54 [[nodiscard]] const vecDouble& GetChangeRates() override {
55 return GetRates();
56 }
57
63 [[nodiscard]] double GetSplitFraction() const {
64 return _splitFraction != nullptr ? static_cast<double>(*_splitFraction) : 0.0;
65 }
66
67 protected:
68 const float* _splitFraction; // fraction of the outflow sent to the first target [-]
69
73 const vecDouble& GetRates() override;
74};
75
76#endif // HYDROBRICKS_PROCESS_OUTFLOW_SPLIT_H
Definition ProcessOutflowSplit.h:20
static void RegisterProcessSettings(SettingsModel *modelSettings)
Definition ProcessOutflowSplit.cpp:13
const vecDouble & GetRates() override
Definition ProcessOutflowSplit.cpp:60
double GetSplitFraction() const
Definition ProcessOutflowSplit.h:63
void SetParameters(const ProcessSettings &processSettings) override
Definition ProcessOutflowSplit.cpp:55
const vecDouble & GetChangeRates() override
Definition ProcessOutflowSplit.h:54
bool IsValid() const override
Definition ProcessOutflowSplit.cpp:18
Definition ProcessOutflow.h:8
Definition SettingsModel.h:74
Definition WaterContainer.h:10
Definition SettingsModel.h:32