hydrobricks
Loading...
Searching...
No Matches
ProcessOutflowLinearThreshold.h
1#ifndef HYDROBRICKS_PROCESS_OUTFLOW_LINEAR_THRESHOLD_H
2#define HYDROBRICKS_PROCESS_OUTFLOW_LINEAR_THRESHOLD_H
3
4#include "Forcing.h"
5#include "Includes.h"
6#include "ProcessOutflow.h"
7
19 public:
21
22 ~ProcessOutflowLinearThreshold() override = default;
23
29 static void RegisterProcessSettings(SettingsModel* modelSettings);
30
34 [[nodiscard]] bool IsValid() const override;
35
39 void SetParameters(const ProcessSettings& processSettings) override;
40
48 [[nodiscard]] bool HasLinearResponse() const override;
49
53 [[nodiscard]] double GetLinearResponseRate() const override {
54 assert(_responseFactor);
55 return *_responseFactor;
56 }
57
61 [[nodiscard]] double GetLinearResponseOffset() const override {
62 assert(_responseFactor && _threshold);
63 return (*_responseFactor) * (*_threshold);
64 }
65
66 protected:
67 const float* _responseFactor; // [1/d]
68 const float* _threshold; // storage threshold below which no outflow occurs [mm]
69
73 const vecDouble& GetRates() override;
74};
75
76#endif // HYDROBRICKS_PROCESS_OUTFLOW_LINEAR_THRESHOLD_H
Definition ProcessOutflowLinearThreshold.h:18
bool HasLinearResponse() const override
Definition ProcessOutflowLinearThreshold.cpp:41
double GetLinearResponseRate() const override
Definition ProcessOutflowLinearThreshold.h:53
double GetLinearResponseOffset() const override
Definition ProcessOutflowLinearThreshold.h:61
static void RegisterProcessSettings(SettingsModel *modelSettings)
Definition ProcessOutflowLinearThreshold.cpp:11
void SetParameters(const ProcessSettings &processSettings) override
Definition ProcessOutflowLinearThreshold.cpp:35
bool IsValid() const override
Definition ProcessOutflowLinearThreshold.cpp:19
const vecDouble & GetRates() override
Definition ProcessOutflowLinearThreshold.cpp:49
Definition ProcessOutflow.h:8
Definition SettingsModel.h:74
Definition WaterContainer.h:10
Definition SettingsModel.h:32