hydrobricks
Loading...
Searching...
No Matches
ProcessCapillaryHBV.h
1#ifndef HYDROBRICKS_PROCESS_CAPILLARY_HBV_H
2#define HYDROBRICKS_PROCESS_CAPILLARY_HBV_H
3
4#include "Includes.h"
5#include "ProcessOutflow.h"
6
26 public:
27 explicit ProcessCapillaryHBV(WaterContainer* container);
28
29 ~ProcessCapillaryHBV() override = default;
30
36 static void RegisterProcessSettings(SettingsModel* modelSettings);
37
41 [[nodiscard]] bool IsValid() const override;
42
46 void SetParameters(const ProcessSettings& processSettings) override;
47
51 [[nodiscard]] bool NeedsTargetBrickLinking() const override {
52 return true;
53 }
54
58 [[nodiscard]] bool LinksMultipleTargets() const override {
59 return true;
60 }
61
65 void AddTargetBrickWithWeights(Brick* targetBrick, const std::vector<Brick*>& weightSources) override;
66
67 protected:
68 std::vector<Brick*> _targetBricks; // soil bricks (non-owning)
69 std::vector<std::vector<const double*>> _weights; // live land-cover area fractions per target
70 const float* _maxCapillaryFlux; // cflux [mm/d]
71
75 vecDouble GetRates() override;
76};
77
78#endif // HYDROBRICKS_PROCESS_CAPILLARY_HBV_H
Definition Brick.h:22
Definition ProcessCapillaryHBV.h:25
static void RegisterProcessSettings(SettingsModel *modelSettings)
Definition ProcessCapillaryHBV.cpp:13
void SetParameters(const ProcessSettings &processSettings) override
Definition ProcessCapillaryHBV.cpp:64
void AddTargetBrickWithWeights(Brick *targetBrick, const std::vector< Brick * > &weightSources) override
Definition ProcessCapillaryHBV.cpp:17
bool LinksMultipleTargets() const override
Definition ProcessCapillaryHBV.h:58
vecDouble GetRates() override
Definition ProcessCapillaryHBV.cpp:69
bool NeedsTargetBrickLinking() const override
Definition ProcessCapillaryHBV.h:51
bool IsValid() const override
Definition ProcessCapillaryHBV.cpp:30
Definition ProcessOutflow.h:8
Definition SettingsModel.h:69
Definition WaterContainer.h:9
Definition SettingsModel.h:29