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 [[nodiscard]] int GetConnectionCount() const override;
23
27 double* GetValuePointer(std::string_view name) override;
28
35 void AttachFluxOutWithWeight(std::unique_ptr<Flux> flux, double weight = 1.0);
36
42 [[nodiscard]] double GetOriginLandCoverAreaFraction() const;
43
49 [[nodiscard]] double GetTargetLandCoverAreaFraction(Flux* flux);
50
57 double ComputeFractionAreas(Flux* flux);
58
64 [[nodiscard]] bool IsLateralProcess() const noexcept 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:57
void AttachFluxOutWithWeight(std::unique_ptr< Flux > flux, double weight=1.0)
Definition ProcessLateral.cpp:42
double * GetValuePointer(std::string_view name) override
Definition ProcessLateral.cpp:26
bool IsValid() const override
Definition ProcessLateral.cpp:13
bool IsLateralProcess() const noexcept override
Definition ProcessLateral.h:64
double GetOriginLandCoverAreaFraction() const
Definition ProcessLateral.cpp:48
int GetConnectionCount() const override
Definition ProcessLateral.cpp:22
double ComputeFractionAreas(Flux *flux)
Definition ProcessLateral.cpp:68
Definition Process.h:16
Definition WaterContainer.h:9