hydrobricks
Loading...
Searching...
No Matches
ProcessPercolationPrevah.h
1#ifndef HYDROBRICKS_PROCESS_PERCOLATION_PREVAH_H
2#define HYDROBRICKS_PROCESS_PERCOLATION_PREVAH_H
3
4#include "Forcing.h"
5#include "Includes.h"
6#include "ProcessOutflow.h"
7
8class Snowpack;
9
41 public:
42 explicit ProcessPercolationPrevah(WaterContainer* container);
43
44 ~ProcessPercolationPrevah() override = default;
45
51 static void RegisterProcessSettings(SettingsModel* modelSettings);
52
56 [[nodiscard]] bool IsValid() const override;
57
61 void SetParameters(const ProcessSettings& processSettings) override;
62
66 [[nodiscard]] bool NeedsGateBrickLinking() const override {
67 return true;
68 }
69
73 void AddGateBrick(Brick* brick) override;
74
75 protected:
76 vector<Brick*> _gateBricks; // non-owning references to the soil moisture stores
77 vector<Snowpack*> _snowpacks; // non-owning references to the unit's snowpacks
78 const float* _rate; // maximum percolation rate [mm/d]
79 const float* _thresholdFraction; // soil moisture fraction below which percolation stops [-]
80 const float* _conductivityFactor; // hydraulic-conductivity factor (PREVAH's KWPER) [-]
81 const float* _constantFraction; // share of the unit percolating at the constant rate [-]
82
86 [[nodiscard]] double GetSnowCoveredFraction() const;
87
91 const vecDouble& GetRates() override;
92};
93
94#endif // HYDROBRICKS_PROCESS_PERCOLATION_PREVAH_H
Definition Brick.h:22
Definition ProcessOutflow.h:8
Definition ProcessPercolationPrevah.h:40
void SetParameters(const ProcessSettings &processSettings) override
Definition ProcessPercolationPrevah.cpp:69
static void RegisterProcessSettings(SettingsModel *modelSettings)
Definition ProcessPercolationPrevah.cpp:14
void AddGateBrick(Brick *brick) override
Definition ProcessPercolationPrevah.cpp:21
bool NeedsGateBrickLinking() const override
Definition ProcessPercolationPrevah.h:66
bool IsValid() const override
Definition ProcessPercolationPrevah.cpp:31
const vecDouble & GetRates() override
Definition ProcessPercolationPrevah.cpp:93
double GetSnowCoveredFraction() const
Definition ProcessPercolationPrevah.cpp:77
Definition SettingsModel.h:74
Definition Snowpack.h:10
Definition WaterContainer.h:10
Definition SettingsModel.h:32