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
42 public:
43 explicit ProcessPercolationPrevah(WaterContainer* container);
44
45 ~ProcessPercolationPrevah() override = default;
46
52 static void RegisterProcessSettings(SettingsModel* modelSettings);
53
57 [[nodiscard]] bool IsValid() const override;
58
62 void SetParameters(const ProcessSettings& processSettings) override;
63
67 [[nodiscard]] bool NeedsGateBrickLinking() const override {
68 return true;
69 }
70
74 void AddGateBrick(Brick* brick) override;
75
76 protected:
77 vector<Brick*> _gateBricks; // non-owning references to the soil moisture stores
78 vector<Snowpack*> _snowpacks; // non-owning references to the unit's snowpacks
79 const float* _rate; // maximum percolation rate [mm/d]
80 const float* _thresholdFraction; // soil moisture fraction below which percolation stops [-]
81 const float* _conductivityFactor; // hydraulic-conductivity factor (PREVAH's KWPER) [-]
82 const float* _constantFraction; // share of the unit percolating at the constant rate [-]
83
87 [[nodiscard]] double GetSnowCoveredFraction() const;
88
92 const vecDouble& GetRates() override;
93};
94
95#endif // HYDROBRICKS_PROCESS_PERCOLATION_PREVAH_H
Definition Brick.h:22
Definition ProcessOutflow.h:8
Definition ProcessPercolationPrevah.h:41
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:67
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:87
Definition Snowpack.h:10
Definition WaterContainer.h:10
Definition SettingsModel.h:44