1#ifndef HYDROBRICKS_PROCESS_H
2#define HYDROBRICKS_PROCESS_H
7#include "SettingsModel.h"
58 static float* GetParameterValuePointer(
const ProcessSettings& processSettings,
const string& name);
75 virtual void AttachForcing(
Forcing*) {
86 m_outputs.push_back(flux);
89 vector<Flux*> GetOutputFluxes() {
93 int GetOutputFluxesNb() {
94 return int(m_outputs.size());
97 virtual bool ToAtmosphere() {
101 virtual bool NeedsTargetBrickLinking() {
105 virtual int GetConnectionsNb() = 0;
107 virtual vecDouble GetChangeRates();
109 virtual void StoreInOutgoingFlux(
double* rate,
int index);
111 void ApplyChange(
int connectionIndex,
double rate,
double timeStepInDays);
113 virtual void Finalize() {
123 return vecDoublePt{};
126 virtual double* GetValuePointer(
const string& name);
132 void SetName(
const string& name) {
140 virtual void SetTargetBrick(
Brick*) {
147 vector<Flux*> m_outputs;
149 double GetSumChangeRatesOtherProcesses();
151 virtual vecDouble GetRates() = 0;
Definition HydroUnit.h:13
virtual void SetHydroUnitProperties(HydroUnit *unit, Brick *brick)
Definition Process.cpp:117
void AttachFluxOut(Flux *flux)
Definition Process.h:84
static bool RegisterParametersAndForcing(SettingsModel *modelSettings, const string &processType)
Definition Process.cpp:80
virtual void SetParameters(const ProcessSettings &processSettings)
Definition Process.cpp:121
static bool HasParameter(const ProcessSettings &processSettings, const string &name)
Definition Process.cpp:125
static Process * Factory(const ProcessSettings &processSettings, Brick *brick)
Definition Process.cpp:23
virtual vecDoublePt GetStateVariables()
Definition Process.h:122
void Reset()
Definition Process.cpp:111
Definition SettingsModel.h:66
Definition Includes.h:115
Definition WaterContainer.h:9
Definition SettingsModel.h:27