|
hydrobricks
|
#include <ProcessInfiltrationHBV.h>
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 |
| Flux * | GetOutputFlux (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) |
| WaterContainer * | GetWaterContainer () 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< Process > | Factory (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 |
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.
|
overrideprotectedvirtual |
|
nodiscardoverridevirtual |
Check that everything is correctly defined.
Reimplemented from ProcessInfiltration.
|
static |
Register the process parameters and forcing in the settings model.
| modelSettings | The settings model to register the parameters in. |
|
overridevirtual |
Assign the parameters to the process.
| processSettings | settings of the process containing the parameters. |
Reimplemented from Process.