hydrobricks
Loading...
Searching...
No Matches
ProcessRefreezeDegreeDay.h
1#ifndef HYDROBRICKS_PROCESS_REFREEZE_DEGREE_DAY_H
2#define HYDROBRICKS_PROCESS_REFREEZE_DEGREE_DAY_H
3
4#include "Forcing.h"
5#include "Includes.h"
6#include "ProcessTransform.h"
7
9
25 public:
26 explicit ProcessRefreezeDegreeDay(WaterContainer* container);
27
28 ~ProcessRefreezeDegreeDay() override = default;
29
35 static void RegisterProcessSettings(SettingsModel* modelSettings);
36
40 [[nodiscard]] bool IsValid() const override;
41
45 void SetParameters(const ProcessSettings& processSettings) override;
46
50 void AttachForcing(Forcing* forcing) override;
51
52 protected:
53 Forcing* _temperature; // non-owning reference
54 const float* _refreezingFactor; // cfr [-]
55
59 vecDouble GetRates() override;
60
61 private:
62 ProcessMeltDegreeDay* _meltProcess; // non-owning reference (sibling process, cached)
63
69 [[nodiscard]] ProcessMeltDegreeDay* FindSiblingMeltProcess() const;
70};
71
72#endif // HYDROBRICKS_PROCESS_REFREEZE_DEGREE_DAY_H
Definition Forcing.h:7
Definition ProcessMeltDegreeDay.h:17
Definition ProcessRefreezeDegreeDay.h:24
void SetParameters(const ProcessSettings &processSettings) override
Definition ProcessRefreezeDegreeDay.cpp:38
vecDouble GetRates() override
Definition ProcessRefreezeDegreeDay.cpp:66
void AttachForcing(Forcing *forcing) override
Definition ProcessRefreezeDegreeDay.cpp:43
static void RegisterProcessSettings(SettingsModel *modelSettings)
Definition ProcessRefreezeDegreeDay.cpp:13
bool IsValid() const override
Definition ProcessRefreezeDegreeDay.cpp:18
Definition ProcessTransform.h:8
Definition SettingsModel.h:69
Definition WaterContainer.h:9
Definition SettingsModel.h:29