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

Base class for everything that can be connected by fluxes. More...

+ Inheritance diagram for flux_node:
+ Collaboration diagram for flux_node:

Detailed Description

Base class for everything that can be connected by fluxes.

Flux nodes can be WaterStorages, flux end points, sinks, sources and bridges to other model domains (e.g. Ponded water to river system). The base class can be used where a simple routing, potentially with mixing, is needed.

Public Types

typedef std::shared_ptr< cmf::water::flux_nodeptr
 Shortcut to the shared pointer.
 

Public Member Functions

virtual ~flux_node ()
 The destructor deletes all connections.
 
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.
 
virtual real get_potential (cmf::math::Time=cmf::math::never) const
 Returns the water potential of the node in m waterhead.
 
cmf::projectget_project () const
 Returns the project, this node is part of.
 
virtual 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.
 
virtual void set_potential (real new_potential)
 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()

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

Returns the water potential of the node in m waterhead.

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

Reimplemented in MacroPore, SoilLayer, DirichletBoundary, and WaterStorage.

◆ RecalcFluxes()

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

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

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)