2.0.0b10
catchment modelling framework
Loading...
Searching...
No Matches
DirichletBoundary Class Reference

Dirichlet (constant head) boundary condition. More...

+ Inheritance diagram for DirichletBoundary:
+ Collaboration diagram for DirichletBoundary:

Detailed Description

Dirichlet (constant head) boundary condition.

This boundary condition can be used either as a pure sink boundary condition or as a conditional source / sink boundary condition. The constant head of the boundary condition is interpreted and handled by the connections of the boundary condition. Not head aware connections, should not be used, since they are ignoring the constant head.

Public Member Functions

virtual real conc (cmf::math::Time t, const cmf::water::solute &_Solute) const
 Returns the water quality of the flux_node, if it is not overridden this is the mix of the incoming fluxes.
 
cmf::water::flux_connectionconnection_to (const cmf::water::flux_node &target)
 Returns the connection between this and target.
 
real flux_to (const cmf::water::flux_node &target, cmf::math::Time t)
 Returns the actual flux between this and target (positive sign means "from this into target")
 
cmf::geometry::point get_3d_flux (cmf::math::Time t)
 Returns the sum of all flux vectors.
 
real get_potential (cmf::math::Time t=cmf::math::never) const override
 Returns the water potential of the node in m waterhead.
 
cmf::projectget_project () const
 Returns the project, this node is part of.
 
double is_empty () const
 Returns true if the node has no water.
 
virtual bool is_storage () const
 true, if this is a waterstorage
 
real operator() (cmf::math::Time t) const
 returns the waterblance
 
virtual bool RecalcFluxes (cmf::math::Time t)
 Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node.
 
bool remove_connection (cmf::water::flux_node::ptr To)
 Remove the connection.
 
void set_dynamic_potential (cmf::math::timeseries ts)
 Sets the potential of the boundary condition as a timeseries.
 
void set_potential (real new_potential) override
 Sets the potential of this flux node.
 
real waterbalance (cmf::math::Time t, const flux_connection *Without=0) const
 Returns the sum of all fluxes (positive and negative) at time t.
 

Public Attributes

std::string Name
 The Name of this node.
 
const int node_id
 The Id of the node.
 
cmf::geometry::point position
 The spatial position of the node.
 

Member Function Documentation

◆ get_potential()

real get_potential ( cmf::math::Time = cmf::math::never) const
overridevirtual

Returns the water potential of the node in m waterhead.

The base class water storage always returns the height of the location

Reimplemented from flux_node.

◆ RecalcFluxes()

virtual bool RecalcFluxes ( cmf::math::Time t)
virtualinherited

Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node.

WaterStorage overrides this, since state changes require an update of the fluxes

Reimplemented in RainSource, NeumannBoundary, and WaterStorage.

◆ waterbalance()

real waterbalance ( cmf::math::Time t,
const flux_connection * Without = 0 ) const
inherited

Returns the sum of all fluxes (positive and negative) at time t.


Single fluxes can be excluded from the calculation

Parameters
tTime of the query
WithoutA flux_connection that is excluded from the waterbalance (e.g. to prevent closed circuits)