hydrobricks
Loading...
Searching...
No Matches
ProcessInfiltrationHBV Class Reference

#include <ProcessInfiltrationHBV.h>

Inheritance diagram for ProcessInfiltrationHBV:
ProcessInfiltration Process

Public Member Functions

 ProcessInfiltrationHBV (WaterContainer *container)
 
bool IsValid () const override
 
void SetParameters (const ProcessSettings &processSettings) override
 
- Public Member Functions inherited from ProcessInfiltration
 ProcessInfiltration (WaterContainer *container)
 
bool NeedsTargetBrickLinking () const override
 
int GetConnectionCount () const override
 
double * GetValuePointer (std::string_view name) override
 
void SetTargetBrick (Brick *targetBrick) override
 
- Public Member Functions inherited from Process
 Process (WaterContainer *container)
 
virtual void Reset ()
 
virtual void Validate () const
 
virtual void SetHydroUnitProperties (HydroUnit *unit, Brick *brick)
 
virtual void AttachForcing (Forcing *)
 
void AttachFluxOut (std::unique_ptr< Flux > flux)
 
int GetOutputFluxCount () const
 
FluxGetOutputFlux (size_t index) const
 
virtual bool ToAtmosphere () const
 
virtual vecDouble GetChangeRates ()
 
virtual void StoreInOutgoingFlux (double *rate, int index)
 
void ApplyChange (int connectionIndex, double rate, double timeStepInDays)
 
virtual void Finalize ()
 
virtual vecDoublePt GetStateVariables ()
 
const string & GetName () const
 
void SetName (const string &name)
 
void SetTimeMachine (TimeMachine *timeMachine)
 
WaterContainerGetWaterContainer () const
 
virtual bool LinksMultipleTargets () const
 
virtual void AddTargetBrickWithWeights (Brick *, const std::vector< Brick * > &)
 
virtual bool IsLateralProcess () const noexcept
 
bool HasOutputFluxes () const noexcept
 
bool HasWaterContainer () const noexcept
 

Static Public Member Functions

static void RegisterProcessSettings (SettingsModel *modelSettings)
 
- Static Public Member Functions inherited from Process
static std::unique_ptr< ProcessFactory (const ProcessSettings &processSettings, Brick *brick)
 
static bool RegisterSettings (SettingsModel *modelSettings, const string &processType)
 
static bool HasParameter (const ProcessSettings &processSettings, std::string_view name)
 
static const float * GetParameterValuePointer (const ProcessSettings &processSettings, std::string_view name)
 

Protected Member Functions

vecDouble GetRates () override
 
- Protected Member Functions inherited from ProcessInfiltration
double GetTargetStock () const
 
double GetTargetCapacity () const
 
double GetTargetFillingRatio () const
 
- Protected Member Functions inherited from Process
double GetSumChangeRatesOtherProcesses () const
 

Protected Attributes

const float * _beta
 
- Protected Attributes inherited from ProcessInfiltration
Brick_targetBrick
 
- Protected Attributes inherited from Process
string _name
 
WaterContainer_container
 
TimeMachine_timeMachine {nullptr}
 
std::vector< std::unique_ptr< Flux > > _outputs
 

Detailed Description

HBV soil-moisture infiltration (beta function; Lindström et al., 1997).

Lives on the ground land cover (zero storage), which receives rain and snowpack outflow. The incoming water is split according to the soil moisture state of the target brick (soil_moisture, capacity FC): infiltration = in × (1 − (SM/FC)^beta)

The complement, in × (SM/FC)^beta, is the recharge of the response routine and must be routed by a subsequent outflow:rest process (declared after this one) to the upper zone.

Requires a linked target brick (soil_moisture) to read its filling ratio.

Member Function Documentation

◆ GetRates()

vecDouble ProcessInfiltrationHBV::GetRates ( )
overrideprotectedvirtual

Get the rates of the process.

Returns
vector of rates.

Implements Process.

◆ IsValid()

bool ProcessInfiltrationHBV::IsValid ( ) const
nodiscardoverridevirtual

Check that everything is correctly defined.

Returns
true if everything is correctly defined.

Reimplemented from ProcessInfiltration.

◆ RegisterProcessSettings()

void ProcessInfiltrationHBV::RegisterProcessSettings ( SettingsModel * modelSettings)
static

Register the process parameters and forcing in the settings model.

Parameters
modelSettingsThe settings model to register the parameters in.

◆ SetParameters()

void ProcessInfiltrationHBV::SetParameters ( const ProcessSettings & processSettings)
overridevirtual

Assign the parameters to the process.

Parameters
processSettingssettings of the process containing the parameters.

Reimplemented from Process.


The documentation for this class was generated from the following files: