2.0.0b10
catchment modelling framework
|
Base class for everything that can be connected by fluxes. More...
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_node > | ptr |
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_connection * | connection_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::project & | get_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. | |
|
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.
|
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.
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
t | Time of the query |
Without | A flux_connection that is excluded from the waterbalance (e.g. to prevent closed circuits) |