hydrobricks
Loading...
Searching...
No Matches
ProcessLateral.h
1#ifndef HYDROBRICKS_PROCESS_LATERAL_H
2#define HYDROBRICKS_PROCESS_LATERAL_H
3
4#include "Forcing.h"
5#include "Includes.h"
6#include "Process.h"
7
8class ProcessLateral : public Process {
9 public:
10 explicit ProcessLateral(WaterContainer* container);
11
12 ~ProcessLateral() override = default;
13
17 [[nodiscard]] bool IsValid() const override;
18
22 int GetConnectionCount() const override;
23
27 double* GetValuePointer(const string& name) override;
28
35 void AttachFluxOutWithWeight(std::unique_ptr<Flux> flux, double weight = 1.0);
36
42 double GetOriginLandCoverAreaFraction() const;
43
50
57 double ComputeFractionAreas(Flux* flux);
58
64 [[nodiscard]] bool IsLateralProcess() const override {
65 return true;
66 }
67
68 protected:
69 vecDouble _weights;
70};
71
72#endif // HYDROBRICKS_PROCESS_LATERAL_H
Definition Flux.h:9
Definition ProcessLateral.h:8
double GetTargetLandCoverAreaFraction(Flux *flux)
Definition ProcessLateral.cpp:53
double * GetValuePointer(const string &name) override
Definition ProcessLateral.cpp:24
void AttachFluxOutWithWeight(std::unique_ptr< Flux > flux, double weight=1.0)
Definition ProcessLateral.cpp:38
bool IsValid() const override
Definition ProcessLateral.cpp:11
bool IsLateralProcess() const override
Definition ProcessLateral.h:64
double GetOriginLandCoverAreaFraction() const
Definition ProcessLateral.cpp:44
int GetConnectionCount() const override
Definition ProcessLateral.cpp:20
double ComputeFractionAreas(Flux *flux)
Definition ProcessLateral.cpp:64
Definition Process.h:15
Definition WaterContainer.h:9