2.0.0b10
catchment modelling framework
Loading...
Searching...
No Matches
cmf::water Namespace Reference

Contains generic classes for solute and water transport. More...

Detailed Description

Contains generic classes for solute and water transport.

You can use any unit for solute amounts you like, like mol, g, kg, or none at all as long as you stay consistent. But for the concentrations, the nominator of the unit must be \(m^3\), e.g. \(\frac{mol}{m^3},\frac{g}{m^3},\frac{1}{m^3}\). For simplicity, in the following the unit of concentrations are called \(\frac{mol}{m^3}\).

Classes

class  Adsorption
 Abstract class to use adsorption process for tracers on surfaces. More...
 
class  connection_list
 A self sorting list of connections. More...
 
class  ConstantFlux
 Produces a constant but changeable flux from a source to a target, if enough water is present in the source. More...
 
class  ConstantStateFlux
 Calculates a flux to or from a water storage to hold it's state at a more or less constant level. More...
 
class  ConstraintLinearStorageFlux
 Calculates flux out of a storage as a linear function of its volume, constraint by the volume stored in the target storage. More...
 
class  DirichletBoundary
 Dirichlet (constant head) boundary condition. More...
 
class  ExponentialDeclineConnection
 A conceptual TOPmodel inspired connection. More...
 
class  ExternallyControlledFlux
 Flux from one node to another, controlled by the user or an external program, by changing the flux constant. More...
 
class  flux_connection
 The connections in cmf hold the processes for the calculation of fluxes between water storages and model boundaries. More...
 
class  flux_node
 Base class for everything that can be connected by fluxes. More...
 
class  LangmuirAdsorption
 This class calculates the adsorption equilibrium between sorbat and sorbent using the Langmuir isotherme. More...
 
class  linear_scale
 A linear scaling functor, with slope and displacement. More...
 
class  LinearAdsorption
 This class calculates the adsorption equilibrium between sorbat and sorbent using the linear (Henry) isotherme. More...
 
class  LinearGradientFlux
 A generic node-to-node gradient based connection. More...
 
class  LinearStorageConnection
 Calculates flux out of a storage as a linear function of its volume. More...
 
class  NeumannBoundary
 A Neumann boundary condition (constant flux boundary condition) More...
 
class  NeumannBoundary_list
 Provides fast access to Neumann boundaries for flux update. More...
 
class  NeumannFlux
 Connection between Neumann-boundary and a flux node. More...
 
class  node_list
 A collection of nodes for fast access of the waterbalance. More...
 
class  NullAdsorption
 A class for tracers without interaction with the storage container. freesolute returns xt. More...
 
class  PartitionFluxRoute
 Routes a fraction of the flux calculated from a master flux_connection between source to target1 directly further to target2 without any timelag. More...
 
class  PowerLawConnection
 Calculates flux out of a storage as a linear function of its volume to a power. More...
 
struct  solute
 A structure to identify a solute. More...
 
class  Solute1stOrderReaction
 A solute reaction of 1st order kinetics (linear decline to product) A->B. More...
 
class  Solute2ndOrderReaction
 A solute reaction of 2nd order kinetics A + B -> C. More...
 
class  solute_vector
 Manages the solutes of the model. More...
 
class  SoluteConstantFluxReaction
 Adds a constant flux to the solute storage. More...
 
class  SoluteDecayReaction
 Adds a linear decay to solute storages. More...
 
class  SoluteDiffusiveTransport
 Calculates a diffusive flux between solute storages. More...
 
class  SoluteEquilibriumReaction
 An equilibrium reaction between two solutes A<->B. More...
 
class  SoluteRateReaction
 A general solute reaction system to describe multi-species kinetics with a power law. More...
 
class  SoluteReaction
 Abstract class for a solute reaction. More...
 
class  SoluteStorage
 A class for the storage of any tracer. More...
 
class  SoluteTimeseries
 A map of concentration time series for solutes. More...
 
class  WaterbalanceFlux
 Routes the sum of all other fluxes to a target. More...
 
class  WaterStorage
 A state variable for the storage of water. More...
 

Functions

void attach_reactions_to_waterstorage (std::shared_ptr< cmf::water::WaterStorage > waterstorage, const SoluteReactionList &reactions)
 Attaches reactions to all solutes of a waterstorage.
 
bool can_set_flux (flux_node::ptr source, flux_node::ptr target)
 Checks if a constant flux between two nodes can be set.
 
void clear_reactions_of_waterstorage (std::shared_ptr< cmf::water::WaterStorage > waterstorage)
 Clear all reactions of a water storage.
 
void set_flux (flux_node::ptr source, flux_node::ptr target, real flux_value)
 Sets a constant flux between two nodes, if an external_control_connection exists.