hydrobricks
Loading...
Searching...
No Matches
ProcessMeltCemaNeige.h
1#ifndef HYDROBRICKS_PROCESS_MELT_CEMANEIGE_H
2#define HYDROBRICKS_PROCESS_MELT_CEMANEIGE_H
3
4#include "Forcing.h"
5#include "Includes.h"
6#include "ProcessMelt.h"
7
28 public:
29 explicit ProcessMeltCemaNeige(WaterContainer* container);
30
31 ~ProcessMeltCemaNeige() override = default;
32
38 static void RegisterProcessSettings(SettingsModel* modelSettings);
39
43 [[nodiscard]] bool IsValid() const override;
44
48 void SetParameters(const ProcessSettings& processSettings) override;
49
53 void AttachForcing(Forcing* forcing) override;
54
58 void Reset() override;
59
60 protected:
61 Forcing* _temperature; // non-owning reference
62 const float* _degreeDayFactor; // Kf [mm/°C/d]
63 const float* _coldContentFactor; // CTG [-]
64 const float* _meltingTemp; // Tmelt [°C]
65 const float* _meanAnnualSnow; // Cn [mm]
66
67 double _coldContent; // G [°C], persists between timesteps
68
72 vecDouble GetRates() override;
73};
74
75#endif // HYDROBRICKS_PROCESS_MELT_CEMANEIGE_H
Definition Forcing.h:7
Definition ProcessMeltCemaNeige.h:27
void Reset() override
Definition ProcessMeltCemaNeige.cpp:58
static void RegisterProcessSettings(SettingsModel *modelSettings)
Definition ProcessMeltCemaNeige.cpp:17
void SetParameters(const ProcessSettings &processSettings) override
Definition ProcessMeltCemaNeige.cpp:42
bool IsValid() const override
Definition ProcessMeltCemaNeige.cpp:25
vecDouble GetRates() override
Definition ProcessMeltCemaNeige.cpp:63
void AttachForcing(Forcing *forcing) override
Definition ProcessMeltCemaNeige.cpp:50
Definition ProcessMelt.h:8
Definition SettingsModel.h:69
Definition WaterContainer.h:9
Definition SettingsModel.h:29