2.0.0b8
catchment modelling framework
Loading...
Searching...
No Matches
FreundlichAdsorbtion Class Reference

BROKEN: This class calculates the adsorption equilibrium between sorbat and sorbent using the Freundlich isotherme. More...

+ Inheritance diagram for FreundlichAdsorbtion:
+ Collaboration diagram for FreundlichAdsorbtion:

Detailed Description

BROKEN: This class calculates the adsorption equilibrium between sorbat and sorbent using the Freundlich isotherme.

Freundlich isotherme:

\[\frac{x_{ad}}{m} = K c^n\]

where

  • \(x_{ad} = x_{tot} - x_{free}\) is the adsorbed tracer mass
    • \(x_{tot}\) is the total tracer mass
    • \(x_{free}\) is the dissolved tracer mass
  • \(m\) is the mass of the sorbent in the same unit as the tracer mass
  • \(K\) is the Freundlich sorption coefficient
  • \(c = \frac{x_{free}}{V}\) is the concentration of the tracer in tracer mass per m3
  • \(n\) is the Freundlich exponent

CMF stores in a solute storage the total mass of a tracer and needs to calculate the free tracer mass. The eq. above can not be rearanged to get \(x_{free}\) from \(x_{tot}\). Instead, the value is iterated using regula falsi. If n is near to 1, using LinearAdsorption will speed up your calculations.

The simplest physically based adsorption model by Langmuir (LangmuirAdsorption) has also a analytical solution and is hence calculated faster then Freundlich.

Public Member Functions

 FreundlichAdsorbtion (real K, real n, real m, real epsilon=1e-12, int maxiter=100)
 
FreundlichAdsorbtioncopy (real m=-1) const
 returns a copy of the Adsorption object.
 
real freesolute (real xt, real V) const
 Returns the mass of dissolved tracer as a function of the total tracer mass in the solute storage and the water volume.
 
real totalsolute (real xf, real V) const
 Returns the total mass of the tracer from the dissolved concetration in tracer unit/m3.
 

Public Attributes

real epsilon
 Tolerable error for Newton iteration.
 
real K
 Freundlich half saturation.
 
real m
 Mass of sorbent (CEC, clay mass etc.)
 
int maxiter
 Maximum number of iterations.
 
real n
 Freundlich n.
 

Constructor & Destructor Documentation

◆ FreundlichAdsorbtion()

FreundlichAdsorbtion ( real K,
real n,
real m,
real epsilon = 1e-12,
int maxiter = 100 )
Parameters
K,nFreundlich coefficents
mMass of sorbent in units of tracer
epsilonTolerance of regula falsi iteration for the calculation of dissolved tracer from total trace, default = 1e-12
maxiterMaximum number of iterations, default = 100

Member Function Documentation

◆ copy()

FreundlichAdsorbtion * copy ( real m = -1) const
virtual

returns a copy of the Adsorption object.

If the adsorption is depending on the sorbent mass, you can give a positive value for the sorbent mass m. If the value is not given or negative, m is used from the original object.

Implements Adsorption.

◆ freesolute()

real freesolute ( real xt,
real V ) const
virtual

Returns the mass of dissolved tracer as a function of the total tracer mass in the solute storage and the water volume.

Parameters
xt\(x_t\) the total tracer mass in the storage
V\(V m^3\) the water volume in the storage
Returns
\(x_f\) the dissolved mass of the tracer

Implements Adsorption.

◆ totalsolute()

real totalsolute ( real xf,
real V ) const
virtual

Returns the total mass of the tracer from the dissolved concetration in tracer unit/m3.

Parameters
xf\(x_f\) the dissolved tracer mass in the storage
V\(V m^3\) the water volume in the storage
Returns
\(x_t\) the total mass of the tracer

Implements Adsorption.