hydrobricks
Loading...
Searching...
No Matches
ProcessOutflowSnowHoldingPrevah.h
1#ifndef HYDROBRICKS_PROCESS_OUTFLOW_SNOW_HOLDING_PREVAH_H
2#define HYDROBRICKS_PROCESS_OUTFLOW_SNOW_HOLDING_PREVAH_H
3
4#include "Forcing.h"
5#include "Includes.h"
6#include "ProcessOutflowSnowHolding.h"
7
31class ProcessMelt;
33 public:
35
36 ~ProcessOutflowSnowHoldingPrevah() override = default;
37
43 static void RegisterProcessSettings(SettingsModel* modelSettings);
44
48 [[nodiscard]] bool IsValid() const override;
49
53 void SetParameters(const ProcessSettings& processSettings) override;
54
58 void AttachForcing(Forcing* forcing) override;
59
60 protected:
61 Forcing* _temperature; // non-owning reference
62 const float* _meltingTemperature; // T0, the PREVAH melt threshold [deg C]
63 const float* _liquidReleaseExponent{nullptr}; // CEXLIQ, the graded-release exponent [-]
64 ProcessMelt* _meltProcess{nullptr}; // sibling melt process (cached), for M
65
69 const vecDouble& GetRates() override;
70
76 [[nodiscard]] ProcessMelt* FindSiblingMeltProcess() const;
77
84 [[nodiscard]] double GetMeltThisStep() const;
85};
86
87#endif // HYDROBRICKS_PROCESS_OUTFLOW_SNOW_HOLDING_PREVAH_H
Definition Forcing.h:7
Definition ProcessMelt.h:8
Definition ProcessOutflowSnowHoldingPrevah.h:32
ProcessMelt * FindSiblingMeltProcess() const
Definition ProcessOutflowSnowHoldingPrevah.cpp:59
static void RegisterProcessSettings(SettingsModel *modelSettings)
Definition ProcessOutflowSnowHoldingPrevah.cpp:18
double GetMeltThisStep() const
Definition ProcessOutflowSnowHoldingPrevah.cpp:74
void AttachForcing(Forcing *forcing) override
Definition ProcessOutflowSnowHoldingPrevah.cpp:51
bool IsValid() const override
Definition ProcessOutflowSnowHoldingPrevah.cpp:25
const vecDouble & GetRates() override
Definition ProcessOutflowSnowHoldingPrevah.cpp:89
void SetParameters(const ProcessSettings &processSettings) override
Definition ProcessOutflowSnowHoldingPrevah.cpp:45
Definition ProcessOutflowSnowHolding.h:18
Definition SettingsModel.h:74
Definition WaterContainer.h:10
Definition SettingsModel.h:32