hydrobricks
Loading...
Searching...
No Matches
ProcessMeltDegreeDay.h
1#ifndef HYDROBRICKS_PROCESS_MELT_DEGREE_DAY_H
2#define HYDROBRICKS_PROCESS_MELT_DEGREE_DAY_H
3
4#include "Forcing.h"
5#include "Includes.h"
6#include "ProcessMelt.h"
7
18 public:
19 explicit ProcessMeltDegreeDay(WaterContainer* container);
20
21 ~ProcessMeltDegreeDay() override = default;
22
28 static void RegisterProcessSettings(SettingsModel* modelSettings);
29
33 [[nodiscard]] bool IsValid() const override;
34
38 void SetParameters(const ProcessSettings& processSettings) override;
39
43 void AttachForcing(Forcing* forcing) override;
44
50 [[nodiscard]] double GetDegreeDayFactor() const {
51 assert(_degreeDayFactor);
52 return *_degreeDayFactor;
53 }
54
60 [[nodiscard]] double GetMeltingTemperature() const {
61 assert(_meltingTemperature);
62 return *_meltingTemperature;
63 }
64
65 protected:
66 Forcing* _temperature; // non-owning reference
67 const float* _degreeDayFactor;
68 const float* _meltingTemperature;
69
73 const vecDouble& GetRates() override;
74};
75
76#endif // HYDROBRICKS_PROCESS_MELT_DEGREE_DAY_H
Definition Forcing.h:7
Definition ProcessMeltDegreeDay.h:17
void AttachForcing(Forcing *forcing) override
Definition ProcessMeltDegreeDay.cpp:41
static void RegisterProcessSettings(SettingsModel *modelSettings)
Definition ProcessMeltDegreeDay.cpp:12
bool IsValid() const override
Definition ProcessMeltDegreeDay.cpp:18
const vecDouble & GetRates() override
Definition ProcessMeltDegreeDay.cpp:49
double GetMeltingTemperature() const
Definition ProcessMeltDegreeDay.h:60
double GetDegreeDayFactor() const
Definition ProcessMeltDegreeDay.h:50
void SetParameters(const ProcessSettings &processSettings) override
Definition ProcessMeltDegreeDay.cpp:35
Definition ProcessMelt.h:8
Definition SettingsModel.h:70
Definition WaterContainer.h:9
Definition SettingsModel.h:30