hydrobricks
Loading...
Searching...
No Matches
SubBasin Class Reference
Inheritance diagram for SubBasin:

Public Member Functions

bool Initialize (SettingsBasin &basinSettings)
 
void BuildBasin (SettingsBasin &basinSettings)
 
void ReserveHydroUnits (size_t count)
 
void ReserveBricks (size_t count)
 
void ReserveSplitters (size_t count)
 
void ReserveInputConnectors (size_t count)
 
void ReserveOutputConnectors (size_t count)
 
void ReserveOutletFluxes (size_t count)
 
void ReserveLateralConnectionsForUnits (SettingsBasin &basinSettings)
 
bool AssignFractions (SettingsBasin &basinSettings)
 
void Reset ()
 
void SaveAsInitialState ()
 
bool IsValid (bool checkProcesses=true) const
 
void Validate () const
 
void AddBrick (std::unique_ptr< Brick > brick)
 
void AddSplitter (std::unique_ptr< Splitter > splitter)
 
void AddHydroUnit (std::unique_ptr< HydroUnit > unit)
 
int GetHydroUnitCount () const
 
HydroUnitGetHydroUnit (size_t index) const
 
bool HasHydroUnits () const
 
HydroUnitGetHydroUnitById (int id) const
 
vecInt GetHydroUnitIds () const
 
vecDouble GetHydroUnitAreas () const
 
int GetBrickCount () const
 
int GetSplitterCount () const
 
BrickGetBrick (size_t index) const
 
bool HasBrick (const string &name) const
 
BrickGetBrick (const string &name) const
 
SplitterGetSplitter (size_t index) const
 
bool HasSplitter (const string &name) const
 
SplitterGetSplitter (const string &name) const
 
bool HasIncomingFlow () const
 
void AddInputConnector (Connector *connector)
 
void AddOutputConnector (Connector *connector)
 
void AttachOutletFlux (Flux *pFlux)
 
double * GetValuePointer (const string &name)
 
bool ComputeOutletDischarge ()
 
double GetArea () const
 

Protected Attributes

double _area
 
double _outletTotal
 
std::vector< std::unique_ptr< Brick > > _bricks
 
std::unordered_map< string, Brick * > _brickMap
 
std::vector< std::unique_ptr< Splitter > > _splitters
 
std::unordered_map< string, Splitter * > _splitterMap
 
std::vector< std::unique_ptr< HydroUnit > > _hydroUnits
 
std::unordered_map< int, HydroUnit * > _hydroUnitMap
 
std::vector< Connector * > _inConnectors
 
std::vector< Connector * > _outConnectors
 
std::vector< Flux * > _outletFluxes
 

Member Function Documentation

◆ AddBrick()

void SubBasin::AddBrick ( std::unique_ptr< Brick > brick)

Add a brick to the sub basin.

Parameters
brickThe brick to add (ownership transferred).

◆ AddHydroUnit()

void SubBasin::AddHydroUnit ( std::unique_ptr< HydroUnit > unit)

Add a hydro unit to the sub-basin.

Parameters
unitThe hydro unit to add (ownership transferred).

◆ AddInputConnector()

void SubBasin::AddInputConnector ( Connector * connector)

Add an input connector to the sub-basin.

Parameters
connectorThe input connector to add.

◆ AddOutputConnector()

void SubBasin::AddOutputConnector ( Connector * connector)

Add an output connector to the sub-basin.

Parameters
connectorThe output connector to add.

◆ AddSplitter()

void SubBasin::AddSplitter ( std::unique_ptr< Splitter > splitter)

Add a splitter to the sub-basin.

Parameters
splitterThe splitter to add (ownership transferred).

◆ AssignFractions()

bool SubBasin::AssignFractions ( SettingsBasin & basinSettings)
nodiscard

Assign the fractions of the basin.

Parameters
basinSettingsThe settings to assign the fractions with.
Returns
True if the assignment was successful, false otherwise.

◆ AttachOutletFlux()

void SubBasin::AttachOutletFlux ( Flux * pFlux)

Attach an outlet flux to the sub-basin.

Parameters
pFluxThe outlet flux to attach.

◆ BuildBasin()

void SubBasin::BuildBasin ( SettingsBasin & basinSettings)

Build the basin with the given settings.

Parameters
basinSettingsThe settings to build the basin with.

◆ ComputeOutletDischarge()

bool SubBasin::ComputeOutletDischarge ( )
nodiscard

GCompute the outlet discharge for the sub-basin.

Returns
True if the computation was successful, false otherwise.

◆ GetArea()

double SubBasin::GetArea ( ) const
inlinenodiscard

Get the area of the sub-basin.

Returns
The area of the sub-basin in square meters.

◆ GetBrick() [1/2]

Brick * SubBasin::GetBrick ( const string & name) const

Get a brick by its name.

Parameters
nameThe name of the brick to get.
Returns
The brick with the specified name.

◆ GetBrick() [2/2]

Brick * SubBasin::GetBrick ( size_t index) const

Get a brick by its index.

Parameters
indexThe index of the brick to get.
Returns
The brick at the specified index.

◆ GetBrickCount()

int SubBasin::GetBrickCount ( ) const

Get the number of bricks in the sub-basin.

Returns
The number of bricks.

◆ GetHydroUnit()

HydroUnit * SubBasin::GetHydroUnit ( size_t index) const

Get a hydro unit by its index.

Parameters
indexThe index of the hydro unit to get.
Returns
The hydro unit at the specified index.

◆ GetHydroUnitAreas()

vecDouble SubBasin::GetHydroUnitAreas ( ) const

Get the areas of all hydro units in the sub-basin.

Returns
A vector of hydro unit areas.

◆ GetHydroUnitById()

HydroUnit * SubBasin::GetHydroUnitById ( int id) const

Get a hydro unit by its ID.

Parameters
idThe ID of the hydro unit to get.
Returns
The hydro unit with the specified ID.

◆ GetHydroUnitCount()

int SubBasin::GetHydroUnitCount ( ) const

Get the number of hydro units in the sub-basin.

Returns
The number of hydro units.

◆ GetHydroUnitIds()

vecInt SubBasin::GetHydroUnitIds ( ) const

Get the IDs of all hydro units in the sub-basin.

Returns
A vector of hydro unit IDs.

◆ GetSplitter() [1/2]

Splitter * SubBasin::GetSplitter ( const string & name) const

Get a splitter by its name.

Parameters
nameThe name of the splitter to get.
Returns
The splitter with the specified name.

◆ GetSplitter() [2/2]

Splitter * SubBasin::GetSplitter ( size_t index) const

Get a splitter by its index.

Parameters
indexThe index of the splitter to get.
Returns
The splitter at the specified index.

◆ GetSplitterCount()

int SubBasin::GetSplitterCount ( ) const

Get the number of splitters in the sub-basin.

Returns
The number of splitters.

◆ GetValuePointer()

double * SubBasin::GetValuePointer ( const string & name)

Get the value pointer for a specific variable.

Parameters
nameThe name of the variable to get the pointer for.
Returns
A pointer to the variable's value.

◆ HasBrick()

bool SubBasin::HasBrick ( const string & name) const
nodiscard

Check if the sub-basin has a brick with a specific name.

Parameters
nameThe name of the brick to check for.
Returns
True if the sub-basin has the brick, false otherwise.

◆ HasHydroUnits()

bool SubBasin::HasHydroUnits ( ) const
inline

Check if the sub-basin has any hydro units.

Returns
True if the sub-basin has hydro units, false otherwise.

◆ HasIncomingFlow()

bool SubBasin::HasIncomingFlow ( ) const
nodiscard

Check if the sub-basin has an incoming flow.

Returns
True if the sub-basin has an incoming flow, false otherwise.

◆ HasSplitter()

bool SubBasin::HasSplitter ( const string & name) const
nodiscard

Check if the sub-basin has a splitter with a specific name.

Parameters
nameThe name of the splitter to check for.
Returns
True if the sub-basin has the splitter, false otherwise.

◆ Initialize()

bool SubBasin::Initialize ( SettingsBasin & basinSettings)
nodiscard

Initialize the sub-basin with the given settings.

Parameters
basinSettingsThe settings to initialize the sub-basin with.
Returns
True if the initialization was successful, false otherwise.

◆ IsValid()

bool SubBasin::IsValid ( bool checkProcesses = true) const
nodiscard

Check if the sub basin is correctly defined.

Returns
True if everything is correctly defined, false otherwise.

◆ ReserveBricks()

void SubBasin::ReserveBricks ( size_t count)
inline

Reserve space for a number of bricks in the sub-basin.

Parameters
countThe number of bricks to reserve space for.

◆ ReserveHydroUnits()

void SubBasin::ReserveHydroUnits ( size_t count)
inline

Reserve space for a number of hydro units in the sub-basin.

Parameters
countThe number of hydro units to reserve space for.

◆ ReserveInputConnectors()

void SubBasin::ReserveInputConnectors ( size_t count)
inline

Reserve space for a number of input connectors in the sub-basin.

Parameters
countThe number of input connectors to reserve space for.

◆ ReserveLateralConnectionsForUnits()

void SubBasin::ReserveLateralConnectionsForUnits ( SettingsBasin & basinSettings)

Reserve space for a number of lateral connections for hydro units in the sub-basin.

Parameters
basinSettingsThe settings to reserve the lateral connections with.

◆ ReserveOutletFluxes()

void SubBasin::ReserveOutletFluxes ( size_t count)
inline

Reserve space for a number of outlet fluxes in the sub-basin.

Parameters
countThe number of outlet fluxes to reserve space for.

◆ ReserveOutputConnectors()

void SubBasin::ReserveOutputConnectors ( size_t count)
inline

Reserve space for a number of output connectors in the sub-basin.

Parameters
countThe number of output connectors to reserve space for.

◆ ReserveSplitters()

void SubBasin::ReserveSplitters ( size_t count)
inline

Reserve space for a number of splitters in the sub-basin.

Parameters
countThe number of splitters to reserve space for.

◆ Reset()

void SubBasin::Reset ( )

Reset the sub-basin to its initial state.

◆ SaveAsInitialState()

void SubBasin::SaveAsInitialState ( )

Save the current state of the sub-basin as the initial state.

◆ Validate()

void SubBasin::Validate ( ) const

Validate that the sub basin is correctly defined. Throws an exception if validation fails.

Exceptions
ModelConfigErrorif validation fails.

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