ComponentTransport
Introduction
ComponentTransport process is widely used to predict the distribution of chemical components in the subsurface, which is controlled by the groundwater flow (advection), the hydrodynamic dispersion and diffusion, the sorption on the solid phase, as well as the decay of component.
Mathematical framework
The governing equation implemented in OGS-6 is the so-called advective and diffusion equation (ADE), with the consideration of sorption and decay process. ADE is widely used to describe the concentration of chemical components in groundwater aquifer and porous media. The equations can be solved analytically in (simplified) 1D cases. For more complex geometry, especially with heterogeneous material properties, numerical solution is often preferred. The ComponentTransport process has the following assumptions.
- The model domain is a porous media and it is fully saturated with water.
- The fluid velocity in the porous media is assumed to be slow, and the flow process is regulated by Darcy’s law.
- The sorption process redistributes the chemical component between the aqueous and solid phase.
- When a decay coefficient is given, the decay of the chemical component follows first-order reaction kinetics equation.
For the flow process, the continuity equation for flowing fluid in a saturated porous medium is as follows
$$ \frac{\partial \left(\phi \rho\right)}{\partial t} + \nabla \cdot \left(\textbf{q} \rho\right) + Q_{p} = 0, $$where $\phi$ [-] is the porosity, $\rho$ [kg/m$^3$] is the fluid density, $t$ [s] is the time, $\textbf{q}$ [m/s] is the Darcy flux with laminar flow assumptions, and $Q_{p}$ [kg/m$^3$/s] is the source-sink term. According to Darcy’s Law, the flux $\textbf{q}$ is related to the pressure drop and gravitational body force through
$$ \textbf{q} = - \frac{\textbf{k}}{\mu} \left(\nabla p - \rho \textbf{g}\right), $$where $\textbf{k}$ [m$^2$] is the intrinsic permeability, $\mu$ [Pa$\cdot$s] is the fluid dynamic viscosity, and $\textbf{g}$ [m/s$^2$] is the gravity vector.
For each chemical component $\alpha = 1, .., N_p$, its corresponding advective and diffusion equation (ADE) reads,
with the concentration $c_{\alpha}$ of the chemical component as the primary variable. $D$ [m$^2$/s] denotes the hydrodynamic dispersion tensor with the following relation
$$ D = (\phi D_{p} + \beta_T \lVert \textbf{q} \rVert) \textbf{I} + ( \beta_L - \beta_T ) \frac{\textbf{q} \textbf{q}^{T}}{\lVert \textbf{q} \rVert} $$implemented, where $D_p$ [m$^2$/s] is the pore diffusion coefficient, $\beta_L$ and $\beta_T$ [m] are the longitudinal and transversal dispersion coefficients. $R$ [-] is the retardation factor defined as
$$ R = 1 + \rho_{b} K_{D} / \phi $$with the bulk density of the porous media $\rho_{b}$ [kg/m$^3$] and the distribution coefficient $K_{D}$ [m$^3$/kg], and $\lambda$ [1/s] is the first-order decay constant,
$$ \lambda = ln 2 / t_{1/2} $$where $t_{1/2}$ [s] is the half life of the decaying component.
It is worth noting that non-isothermal component transport process can be simulated by including the process variable Temperature. Currently, the non-isothermal component transport process is only available in staggered scheme.
The corresponding heat transport equation is given as follows.
$$ \begin{equation} \left(\phi \rho_\text{f} c_\text{f} + (1-\phi) \rho_\text{s} c_\text{s} \right) \frac{\partial T}{\partial t} + \rho_\text{f} c_\text{f} \textbf{q} \cdot \nabla T - \nabla \cdot \left (\Lambda \cdot \nabla T \right) = 0 \end{equation} $$where $c_\text{f}$ and $c_\text{s}$ [J/kg/K] refer to the specific heat capacity of fluid and solid, $\rho_\text{f}$ and $\rho_\text{s}$ [kg/m$^3$] denote the density of fluid and solid, $\phi$ [-] and $\Lambda$ [W/m/K] are the porosity and tensor of thermal dispersion.
Input parameters
The following table shows an overview of all input parameters available in the ComponentTransport process.
| Parameter | Symbol | Unit | Doxygen and Example |
|---|---|---|---|
| Porosity | $\phi$ | [-] | [Example |
| Fluid density | $\rho$ | [kg/m$^{3}$] | |
| Intrinsic permeability | $\textbf{k}$ | [m$^{2}$] | Example |
| Dynamic viscosity | $\mu$ | [Pa$\cdot$s] | |
| Gravity vector (specific body force) | $\textbf{g}$ | [m/s$^{2}$] | Link |
| Retardation factor | $R$ | [-] | Example |
| First-order decay constant | $\lambda$ | [1/s] | Example |
Input file definition
Process definition
In the ComponentTransport process, the configuration is as follows.
<name>: name of the chemical component.<type>: must beComponentTransport.<integration_order>: This is the order of the integration method for element-wise integration. In common cases set to2.<process_variables>: The primary variables of theComponentTransportprocess are either<concentration>or<pressure>. For the variable concentration, the name of the chemical component is given. Like in the following example, there are 3 chemical components, i.e. Si, Al and Cl. The<pressure>process’ variable is also named ‘pressure’, see<process_variables>section outside of process’ definition.
<processes>
<process>
<name>hc</name>
<type>ComponentTransport</type>
<integration_order>2</integration_order>
<process_variables>
<concentration>Si</concentration>
<concentration>Al</concentration>
<concentration>Cl</concentration>
<pressure>pressure</pressure>
</process_variables>
<specific_body_force>0 0</specific_body_force>
<secondary_variables>
<secondary_variable internal_name="darcy_velocity" output_name="darcy_velocity"/>
</secondary_variables>
</process>
</processes>Component definition
Under the keyword <component>, the properties of the transported chemical component are defined. The parameters here are the pore diffusion coefficient, the retardation factor, and the decay rate. Below is an example of the Si component with the corresponding transport parameters.
<component>
<name>Si</name>
<properties>
<property>
<name>pore_diffusion</name>
<type>Constant</type>
<value>1</value>
</property>
<property>
<name>retardation_factor</name>
<type>Constant</type>
<value>0</value>
</property>
<property>
<name>decay_rate</name>
<type>Parameter</type>
<parameter_name>decay</parameter_name>
</property>
</properties>
</component>Available benchmarks
- Heterogeneous Saturated Mass Transport
- Saturated Mass Transport
- Saturated Variable-Density Flow and Mass Transport (Elder)
- Saturated Variable-Density Flow and Mass Transport (Goswami)
- Variable Dependent Boundary Condition
- Conservative tracer transport with time varying source (1D/2D)
- (Advection-)diffusion-sorption-decay problem
- Two-layer diffusion problem
This article was written by Haibing Shao, Renchao Lu. If you are missing something or you find an error please reach out
to us on our forum.
Generated with Hugo 0.164.0
in CI job 825193
|
Last revision: April 20, 2026
Commit: refactor(MeshLib): remove PropertyVector::push_back 870422dde
| Edit this page on