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
19 public:
20 explicit ProcessLateralSnowSlide(WaterContainer* container);
21
22 ~ProcessLateralSnowSlide() override = default;
23
27 bool IsOk() override;
28
34 static void RegisterProcessParametersAndForcing(SettingsModel* modelSettings);
35
39 void SetHydroUnitProperties(HydroUnit* unit, Brick* brick) override;
40
44 void SetParameters(const ProcessSettings& processSettings) override;
45
46 protected:
47 float _slope_deg; // Slope of the hydro unit [°]
48 float* _coeff; // Coefficient in the equation []
49 float* _exp; // Exponent in the equation []
50 float* _minSlope; // Minimum slope for snow holding [°]
51 float* _maxSlope; // Maximum slope for snow holding [°]
52 float* _minSnowHoldingDepth; // Minimum snow holding depth (when slope > maxSlope) [mm]
53 float* _maxSnowDepth; // Maximum snow depth (not in the original method) [mm]
54
58 vecDouble GetRates() override;
59
60 private:
69 double AvoidUnrealisticAccumulation(double rate, Flux* flux);
70};
71
72#endif // HYDROBRICKS_PROCESS_LATERAL_SNOWSLIDE_H
Definition Brick.h:10
Definition FluxToBrick.h:9
Definition Flux.h:8
Definition HydroUnit.h:14
Definition ProcessLateralSnowSlide.h:18
static void RegisterProcessParametersAndForcing(SettingsModel *modelSettings)
Definition ProcessLateralSnowSlide.cpp:24
void SetParameters(const ProcessSettings &processSettings) override
Definition ProcessLateralSnowSlide.cpp:37
vecDouble GetRates() override
Definition ProcessLateralSnowSlide.cpp:47
void SetHydroUnitProperties(HydroUnit *unit, Brick *brick) override
Definition ProcessLateralSnowSlide.cpp:33
bool IsOk() override
Definition ProcessLateralSnowSlide.cpp:20
Definition ProcessLateral.h:8
Definition SettingsModel.h:66
Definition WaterContainer.h:9
Definition SettingsModel.h:27