| 
   2.0.0b10 
   catchment modelling framework 
   | 
 
A class to represent large groundwater storages, not bounded to the usual horizontal discretization scheme, the Cell. More...
 Inheritance diagram for aquifer:
 Collaboration diagram for aquifer:A class to represent large groundwater storages, not bounded to the usual horizontal discretization scheme, the Cell.
Naturally aquifers are connected with aquifer_Darcy or kinematic_wave connections. As a boundary condition for a cell based soil water system, aquifers are used as a right hand side node of percolation connections.
Basic head ( \(\Psi\)) / volume ( \(V\)) relation:
\[ \Psi = z_{base} + \frac {V}{A \Phi} \]
Public Member Functions | |
| aquifer (cmf::project &p, cmf::geometry::point position, real area, real thickness, real porosity, real K=1e-4) | |
| Creates an aquifer at a certain position.   | |
| aquifer (cmf::upslope::cell_vector &cells, real thickness, real porosity, real K=1e-4) | |
| Creates an aquifer below a collection of cells.   | |
| real | conc (cmf::math::Time t, const cmf::water::solute &_Solute) const override | 
| Returns the current WaterQuality (concentration of all solutes)  | |
| real | conc (const cmf::water::solute &_Solute) const | 
| Returns the concentration of the given solute.  | |
| void | conc (const cmf::water::solute &_Solute, real NewConcetration) | 
| Sets a new concentration.  | |
| cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | 
| Returns the connection between this and target.  | |
| virtual real | dxdt (const cmf::math::Time &time) | 
Returns the derivate of the state variable at time time.  | |
| 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_base_height () const | 
| Returns the base height of the aquifer in m a.s.l.  | |
| virtual real | get_K (cmf::geometry::point direction) const | 
| Returns the conductivity in m/day for a specific direction.   | |
| real | get_potential (cmf::math::Time t=cmf::math::never) const override | 
| Returns the water potential of the node in m waterhead.   | |
| cmf::project & | get_project () const | 
| Returns the project, this node is part of.  | |
| real | get_state () const | 
| Returns the current state of the variable.  | |
| char | get_state_variable_content () const | 
| A character indicating the integrated variable (either 'V' for Volume or 'h' for head)  | |
| real | get_top_height () const | 
| Returns the top height of the aquifer in m a.s.l.  | |
| virtual real | get_volume () const | 
| Returns the volume of water in this storage in m3  | |
| virtual bool | is_connected (const cmf::math::StateVariable &other) const | 
| Returns True if this waterstorage is effected by another state.  | |
| bool | is_storage () const override | 
| Returns true, since this is a storage.  | |
| real | operator() (cmf::math::Time t) const | 
| returns the waterblance  | |
| 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.  | |
| void | set_state (real newState) | 
| Gives access to the state variable.  | |
| void | set_state_variable_content (char content) | 
| A character indicating the integrated variable (either 'V' for Volume or 'h' for head)  | |
| virtual void | set_volume (real newwatercontent) | 
| Sets the volume of water in this storage in m3  | |
| SoluteStorage & | Solute (const cmf::water::solute _Solute) | 
| Returns the water quality of the water storage.  | |
| real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | 
| Returns the sum of all fluxes (positive and negative) at time t.   | |
Static Public Member Functions | |
| static aquifer::ptr | cast (cmf::water::flux_node::ptr for_cast) | 
| Casts a flux_node to an aquifer, if the flux_node is an aquifer.  | |
Public Attributes | |
| real | area | 
| The horizontal area of the aquifer.  | |
| cmf::geometry::point | K | 
| The conductivity in m/day for the three spatial dimensions.  | |
| std::string | Name | 
| The Name of this node.  | |
| const int | node_id | 
| The Id of the node.  | |
| real | porosity | 
| The porosity of the aquifer in m3/m3.  | |
| cmf::geometry::point | position | 
| The spatial position of the node.  | |
| real | thickness | 
| The thickness of the aquifer in m.  | |
Protected Member Functions | |
| void | MarkStateChangeHandled () | 
| Sets the updated flag (m_StateIsNew) to false.  | |
| bool | StateIsChanged () | 
| Returns if the state was currently updated.  | |
Overrides of flux_node | |
| virtual bool | RecalcFluxes (cmf::math::Time t) | 
| Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node.   | |
| virtual double | is_empty () const | 
| Returns true if the node has no water.  | |
| aquifer | ( | cmf::project & | p, | 
| cmf::geometry::point | position, | ||
| real | area, | ||
| real | thickness, | ||
| real | porosity, | ||
| real | K = 1e-4 ) | 
Creates an aquifer at a certain position.
| p | Project, this aquifer belongs to | 
| position | Position of the aquifer center (x and y) and the aquifer top (z) | 
| area | Area of the aquifer | 
| thickness | Mean thickness of the aquifer in m | 
| porosity | Mean porositiy of the aquifer | 
| K | Conductivity of the aquifer in m/day. If the conductivity should be anisotropic, change the x,y and z values of the member K | 
| aquifer | ( | cmf::upslope::cell_vector & | cells, | 
| real | thickness, | ||
| real | porosity, | ||
| real | K = 1e-4 ) | 
Creates an aquifer below a collection of cells.
| cells | The cells above the aquifer. The area of the aquifer equals the area of the cells, and the upper boundary equals the soildepth of the lowest cell | 
| thickness | The thickness of the aquifer in m | 
| porosity | Porosity of the aquifer | 
| K | Conductivity of the aquifer in m/day. If the conductivity should be anisotropic, change the x,y and z values of the member K | 
      
  | 
  virtual | 
Returns the conductivity in m/day for a specific direction.
Takes account for anisotropy
\[ \|K\|(d) = \frac{d}{\|d\|} \bullet K\]
Implements conductable.
      
  | 
  overridevirtualinherited | 
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.
      
  | 
  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 from flux_node.
      
  | 
  inherited | 
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) |