|
hydrobricks
|
#include <ProcessSublimation.h>
Public Member Functions | |
| ProcessSublimation (WaterContainer *container) | |
| bool | IsValid () const override |
| int | GetConnectionCount () const override |
| double * | GetValuePointer (std::string_view name) override |
| bool | ToAtmosphere () const 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 | SetParameters (const ProcessSettings &processSettings) |
| virtual void | AttachForcing (Forcing *) |
| void | AttachFluxOut (std::unique_ptr< Flux > flux) |
| int | GetOutputFluxCount () const |
| Flux * | GetOutputFlux (size_t index) const |
| virtual bool | NeedsTargetBrickLinking () const |
| virtual const 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 void | SetTargetBrick (Brick *) |
| 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 |
Additional Inherited Members | |
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 inherited from Process | |
| const vecDouble & | StoreRates (std::initializer_list< double > rates) |
| double | GetSumChangeRatesOtherProcesses () const |
| virtual const vecDouble & | GetRates ()=0 |
Protected Attributes inherited from Process | |
| string | _name |
| WaterContainer * | _container |
| TimeMachine * | _timeMachine {nullptr} |
| std::vector< std::unique_ptr< Flux > > | _outputs |
| vecDouble | _changeRates |
Base class for snow sublimation processes.
Sublimation removes snow water equivalent from a snowpack snow container directly to the atmosphere (the solid-to-vapour analog of evapotranspiration). Like ET, it has a single output and reports ToAtmosphere() == true, so the model builder attaches a FluxToAtmosphere automatically and no target brick is required.
Snow sublimation can be a sizeable term of the alpine/high-mountain snow mass balance — 0.1 to 90 % of snowfall depending on site and weather, and of the order of 30 % of the annual snow water equivalent in some semiarid mountains (Strasser et al., 2008; Herrero & Polo, 2016).
|
nodiscardoverridevirtual |
Get the number of connections to the process.
Implements Process.
|
overridevirtual |
Get the value pointer for a given element.
| name | name of the element to get. |
Reimplemented from Process.
|
nodiscardoverridevirtual |
Check that everything is correctly defined.
Implements Process.
Reimplemented in ProcessSublimationConstant, and ProcessSublimationPET.
|
inlinenodiscardoverridevirtual |
Check if the process sends water to the atmosphere.
Reimplemented from Process.