version 3.10-dev
porousmediumflow/3p3c/model.hh File Reference

Adaption of the fully implicit scheme to the three-phase three-component flow model. More...

Go to the source code of this file.

Description

This model implements three-phase three-component flow of three fluid phases \(\alpha \in \{ water, gas, NAPL \}\) each composed of up to three components \(\kappa \in \{ water, air, contaminant \}\). The standard multiphase Darcy approach is used as the equation for the conservation of momentum. For details on Darcy's law see dumux/flux/darcyslaw.hh.

By inserting Darcy's law into the equations for the conservation of the components, one transport equation for each component is obtained as

\begin{eqnarray*} && \frac{\partial (\sum_\alpha \phi \varrho_{\alpha,mol} x_\alpha^\kappa S_\alpha )}{\partial t} - \sum\limits_\alpha \nabla \cdot \left\{ \frac{k_{r\alpha}}{\mu_\alpha} \varrho_{\alpha,mol} x_\alpha^\kappa \mathbf{K} (\nabla p_\alpha - \varrho_{\alpha,mass} \mathbf{g}) \right\} \nonumber \\ \nonumber \\ && - \sum\limits_\alpha \nabla \cdot \left\{ D_{\alpha, \text{pm}}^\kappa \frac{1}{M_{\kappa}} \varrho_{\alpha} \nabla X^\kappa_{\alpha} \right\} - q^\kappa = 0 \qquad \forall \kappa , \; \forall \alpha, \end{eqnarray*}

where:

  • \( \phi \) is the porosity of the porous medium,
  • \( S_\alpha \) represents the saturation of phase \( \alpha \),
  • \( \rho_\alpha \) is the mass density of phase \( \alpha \),
  • \( X_\alpha^\kappa \) is the mass fraction of component \( \kappa \) in phase \( \alpha \),
  • \( x_\alpha^\kappa \) is the mole fraction of component \( \kappa \) in phase \( \alpha \),
  • \( v_\alpha \) is the velocity of phase \( \alpha \),
  • \( D_{\alpha, \text{pm}}^\kappa \) is the effective diffusivity of component \( \kappa \) in phase \( \alpha \),
  • \( M_\kappa \) is the molar mass of component \( \kappa \)
  • \( q_\alpha^\kappa \) is a source or sink term.

Note that these balance equations are molar.

The model uses commonly applied auxiliary conditions like \(S_w + S_n + S_g = 1\) for the saturations and \(x^w_\alpha + x^a_\alpha + x^c_\alpha = 1\) for the mole fractions. Furthermore, the phase pressures are related to each other via capillary pressures between the fluid phases, which are functions of the saturation, e.g. according to the approach of Parker et al.

The used primary variables are dependent on the locally present fluid phases. An adaptive primary variable switch is included. The phase state is stored for all nodes of the system. The following cases can be distinguished:

  • All three phases are present: Primary variables are two saturations \((S_w\) and \(S_n)\), and a pressure, in this case \(p_g\).
  • Only the water phase is present: Primary variables are now the mole fractions of air and contaminant in the water phase \((x_w^a\) and \(x_w^c)\), as well as the gas pressure, which is, of course, in a case where only the water phase is present, just the same as the water pressure.
  • Gas and NAPL phases are present: Primary variables \((S_n\), \(x_g^w\), \(p_g)\).
  • Water and NAPL phases are present: Primary variables \((S_n\), \(x_w^a\), \(p_g)\).
  • Only gas phase is present: Primary variables \((x_g^w\), \(x_g^c\), \(p_g)\).
  • Water and gas phases are present: Primary variables \((S_w\), \(x_w^g\), \(p_g)\).

Classes

struct  Dumux::ThreePThreeCModelTraits< useCS, useMol >
 Specifies a number properties of two-phase models. More...
 
struct  Dumux::Properties::TTag::ThreePThreeC
 The type tags for the isothermal three-phase three-component model. More...
 
struct  Dumux::Properties::TTag::ThreePThreeCNI
 The type tags for the non-isothermal three-phase three-component model. More...
 
struct  Dumux::Properties::BaseModelTraits< TypeTag, TTag::ThreePThreeC >
 Set the model traits. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::ThreePThreeC >
 
struct  Dumux::Properties::UseConstraintSolver< TypeTag, TTag::ThreePThreeC >
 Determines whether a constraint solver should be used explicitly. More...
 
struct  Dumux::Properties::ReplaceCompEqIdx< TypeTag, TTag::ThreePThreeC >
 Set as default that no component mass balance is replaced by the total mass balance. More...
 
struct  Dumux::Properties::FluidState< TypeTag, TTag::ThreePThreeC >
 The fluid state which is used by the volume variables to store the thermodynamic state. This should be chosen appropriately for the model ((non-)isothermal, equilibrium, ...). This can be done in the problem. More...
 
struct  Dumux::Properties::LocalResidual< TypeTag, TTag::ThreePThreeC >
 The local residual function of the conservation equations. More...
 
struct  Dumux::Properties::PrimaryVariables< TypeTag, TTag::ThreePThreeC >
 The primary variables vector for the 3p3c model. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::ThreePThreeC >
 Set the volume variables property. More...
 
struct  Dumux::Properties::EffectiveDiffusivityModel< TypeTag, TTag::ThreePThreeC >
 The model after Millington (1961) is used for the effective diffusivity. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::ThreePThreeC >
 Set the vtk output fields specific to this model. More...
 
struct  Dumux::Properties::UseMoles< TypeTag, TTag::ThreePThreeC >
 Use mole fractions in the balance equations by default. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::ThreePThreeCNI >
 Set non-isothermal NumEq. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::ThreePThreeCNI >
 Set the volume variables property. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::ThreePThreeCNI >
 Set the non-isothermal vktoutputfields. More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::ThreePThreeCNI >
 Somerton is used as default model to compute the effective thermal heat conductivity. More...
 

Namespaces

namespace  Dumux
 
namespace  Dumux::Properties
 The energy balance equation for a porous solid.
 
namespace  Dumux::Properties::TTag
 Type tag for numeric models.
 
Include dependency graph for porousmediumflow/3p3c/model.hh: