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

Calculates a diffusive flux between solute storages. More...

+ Inheritance diagram for SoluteDiffusiveTransport:
+ Collaboration diagram for SoluteDiffusiveTransport:

Detailed Description

Calculates a diffusive flux between solute storages.

Warning
Experimental feature! The math might not be a correct diffusion equation

\[ q = \alpha \cdot \left([A]_1 - [A]_2\right) V_2 \]

  • \( [A]_n \) Concentration of solute A in storage n in mol/m³ or a similar unit
  • \( \alpha \) Diffusion velocity in 1/day. Depends on the distance between the storages. To calculate it from a distance independent diffusion velocity \( D [m/day] \) over a distance d use \( \alpha = D / d \)
  • \( V_2 \) the water volume of the source water storage

Public Member Functions

real get_flux (const SoluteStorage &solute_storage, const cmf::math::Time &t) const override
 Calculates the reactive flux from / to the given solute storage at time t.
 
virtual bool is_compatible (const SoluteStorage &solute_storage)
 Tests if the reaction is compatible to a solute storage. Returns true if not overwritten by a child class.
 
real operator() (const SoluteStorage &solute_storage, const cmf::math::Time &t) const
 Calculates the reactive flux from / to the given solute storage at time t.
 

Public Attributes

real alpha
 Diffusion rate in 1/day.
 
const SoluteStorageleft
 SoluteStorages that are connected.