hydrobricks
Loading...
Searching...
No Matches
ProcessLateralSnowSlide.h
Go to the documentation of this file.
1
11#ifndef HYDROBRICKS_PROCESS_LATERAL_SNOWSLIDE_H
12#define HYDROBRICKS_PROCESS_LATERAL_SNOWSLIDE_H
13
14#include "ProcessLateral.h"
15
16class FluxToBrick;
17
30 public:
31 explicit ProcessLateralSnowSlide(WaterContainer* container);
32
33 ~ProcessLateralSnowSlide() override = default;
34
38 [[nodiscard]] bool IsValid() const override;
39
45 static void RegisterProcessSettings(SettingsModel* modelSettings);
46
50 void SetHydroUnitProperties(HydroUnit* unit, Brick* brick) override;
51
55 void SetParameters(const ProcessSettings& processSettings) override;
56
60 [[nodiscard]] bool IsLateralProcess() const noexcept override {
61 return true;
62 }
63
64 protected:
65 float _slopeDeg; // Slope of the hydro unit [°]
66 const float* _coeff; // Coefficient in the equation []
67 const float* _exp; // Exponent in the equation []
68 const float* _minSlope; // Minimum slope for snow holding [°]
69 const float* _maxSlope; // Maximum slope for snow holding [°]
70 const float* _minSnowHoldingDepth; // Minimum snow holding depth (when slope > maxSlope) [mm]
71 const float* _maxSnowDepth; // Maximum snow depth (not in the original method) [mm]
72
76 const vecDouble& GetRates() override;
77
78 private:
87 double AvoidUnrealisticAccumulation(double rate, Flux* flux);
88};
89
90#endif // HYDROBRICKS_PROCESS_LATERAL_SNOWSLIDE_H
Definition Brick.h:22
Definition FluxToBrick.h:9
Definition Flux.h:9
Definition HydroUnit.h:18
Definition ProcessLateralSnowSlide.h:29
bool IsLateralProcess() const noexcept override
Definition ProcessLateralSnowSlide.h:60
void SetParameters(const ProcessSettings &processSettings) override
Definition ProcessLateralSnowSlide.cpp:36
static void RegisterProcessSettings(SettingsModel *modelSettings)
Definition ProcessLateralSnowSlide.cpp:23
void SetHydroUnitProperties(HydroUnit *unit, Brick *brick) override
Definition ProcessLateralSnowSlide.cpp:32
const vecDouble & GetRates() override
Definition ProcessLateralSnowSlide.cpp:46
bool IsValid() const override
Definition ProcessLateralSnowSlide.cpp:19
Definition ProcessLateral.h:8
Definition SettingsModel.h:70
Definition WaterContainer.h:9
Definition SettingsModel.h:30