hydrobricks
Loading...
Searching...
No Matches
Splitter Class Referenceabstract
Inheritance diagram for Splitter:
SplitterMultiFluxes SplitterRain SplitterSnowRain

Public Member Functions

virtual bool IsValid () const =0
 
virtual void Validate () const
 
virtual void SetParameters (const SplitterSettings &splitterSettings)=0
 
const float * GetParameterValuePointer (const SplitterSettings &splitterSettings, const string &name)
 
virtual void AttachForcing (Forcing *)
 
void AttachFluxIn (Flux *flux)
 
void AttachFluxOut (std::unique_ptr< Flux > flux)
 
virtual double * GetValuePointer (const string &name)=0
 
virtual void Compute ()=0
 
const string & GetName () const
 
void SetName (const string &name)
 

Static Public Member Functions

static SplitterFactory (const SplitterSettings &splitterSettings)
 

Protected Attributes

string _name
 
vector< Flux * > _inputs
 
std::vector< std::unique_ptr< Flux > > _outputs
 

Member Function Documentation

◆ AttachFluxIn()

void Splitter::AttachFluxIn ( Flux * flux)
inline

Attach incoming flux.

Parameters
fluxincoming flux

◆ AttachFluxOut()

void Splitter::AttachFluxOut ( std::unique_ptr< Flux > flux)
inline

Attach outgoing flux.

Parameters
fluxoutgoing flux (ownership transferred)

◆ AttachForcing()

virtual void Splitter::AttachForcing ( Forcing * )
inlinevirtual

Attach forcing.

Parameters
forcingincoming forcing

Reimplemented in SplitterRain, and SplitterSnowRain.

◆ Compute()

virtual void Splitter::Compute ( )
pure virtual

Compute the output value.

Implemented in SplitterMultiFluxes, SplitterRain, and SplitterSnowRain.

◆ Factory()

Splitter * Splitter::Factory ( const SplitterSettings & splitterSettings)
static

Factory method to create a splitter.

Parameters
splitterSettingssettings of the splitter containing the parameters.
Returns
a pointer to the splitter.

◆ GetName()

const string & Splitter::GetName ( ) const
inline

Get the name of the splitter.

Returns
name of the splitter.

◆ GetParameterValuePointer()

const float * Splitter::GetParameterValuePointer ( const SplitterSettings & splitterSettings,
const string & name )

Get the value pointer of a parameter.

Parameters
splitterSettingssettings of the splitter containing the parameters.
namename of the parameter.
Returns
pointer to the value of the parameter.

◆ GetValuePointer()

virtual double * Splitter::GetValuePointer ( const string & name)
pure virtual

Get the pointer to an output value.

Parameters
namename of the output value.

Implemented in SplitterMultiFluxes, SplitterRain, and SplitterSnowRain.

◆ IsValid()

virtual bool Splitter::IsValid ( ) const
nodiscardpure virtual

Check that everything is correctly defined.

Returns
true if everything is correctly defined.

Implemented in SplitterMultiFluxes, SplitterRain, and SplitterSnowRain.

◆ SetName()

void Splitter::SetName ( const string & name)
inline

Set the name of the splitter.

Parameters
namename of the splitter.

◆ SetParameters()

virtual void Splitter::SetParameters ( const SplitterSettings & splitterSettings)
pure virtual

Assign the parameters to the splitter.

Parameters
splitterSettingssettings of the splitter containing the parameters.

Implemented in SplitterMultiFluxes, SplitterRain, and SplitterSnowRain.

◆ Validate()

void Splitter::Validate ( ) const
virtual

Validate that everything is correctly defined. Throws an exception if validation fails.

Exceptions
ModelConfigErrorif validation fails.

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