3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Modules | Files | Classes | Typedefs

Two-phase, two-component Darcy flow. More...

Description

Two-phase, two-component Darcy flow.

This model implements two-phase two-component flow of two compressible and partially miscible fluids \(\alpha \in \{ w, n \}\) composed of the two components \(\kappa \in \{ w, a \}\). The standard multiphase Darcy approach is used as the equation for the conservation of momentum:

\[ v_\alpha = - \frac{k_{r\alpha}}{\mu_\alpha} \mathbf{K} \left(\textbf{grad}\, p_\alpha - \varrho_{\alpha} \mbox{\bf g} \right) \]

By inserting this into the equations for the conservation of the components, one gets one transport equation for each component

\begin{eqnarray*} && \phi \frac{\partial (\sum_\alpha \varrho_\alpha \frac{M^\kappa}{M_\alpha} x_\alpha^\kappa S_\alpha )} {\partial t} - \sum_\alpha \text{div} \left\{ \varrho_\alpha \frac{M^\kappa}{M_\alpha} x_\alpha^\kappa \frac{k_{r\alpha}}{\mu_\alpha} \mathbf{K} (\textbf{grad}\, p_\alpha - \varrho_{\alpha} \mbox{\bf g}) \right\} \nonumber \\ \nonumber \\ &-& \sum_\alpha \text{div} \left\{ D_{\alpha,\text{pm}}^\kappa \varrho_{\alpha} \textbf{grad} X^\kappa_{\alpha} \right\} - \sum_\alpha q_\alpha^\kappa = 0 \qquad \kappa \in \{w, a\} \, , \alpha \in \{w, g\} \end{eqnarray*}

All equations are discretized using a vertex-centered finite volume (box) or cell-centered finite volume scheme as spatial and the implicit Euler method as time discretization.

By using constitutive relations for the capillary pressure \(p_c = p_n - p_w\) and relative permeability \(k_{r\alpha}\) and taking advantage of the fact that \(S_w + S_n = 1\) and \(x^\kappa_w + x^\kappa_n = 1\), the number of unknowns can be reduced to two. The used primary variables are, like in the two-phase model, either \(p_w\) and \(S_n\) or \(p_n\) and \(S_w\). The formulation which ought to be used can be specified by setting the Formulation property to either TwoPTwoCFormulation::pwsn or TwoPTwoCFormulation::pnsw. By default, the model uses \(p_w\) and \(S_n\). Moreover, the second primary variable depends on the phase state, since a primary variable switch is included. The phase state is stored for all nodes of the system. The model is able to use either mole or mass fractions. The property useMoles can be set to either true or false in the problem file. Make sure that the according units are used in the problem setup. useMoles is set to true by default. Following cases can be distinguished:

Modules

 Sequential
 Sequential two-phase, two-component Darcy flow.
 

Files

file  porousmediumflow/2p2c/model.hh
 Adaption of the fully implicit scheme to the two-phase two-component fully implicit model.
 
file  porousmediumflow/2p2c/volumevariables.hh
 Contains the quantities which are constant within a finite volume in the two-phase two-component model.
 

Classes

class  Dumux::TwoPTwoCVolumeVariablesBase< Traits, Impl >
 Contains the quantities which are constant within a finite volume in the two-phase two-component model. This is the base class for a 2p2c model with and without chemical nonequilibrium. More...
 
class  Dumux::TwoPTwoCVolumeVariablesImplementation< Traits, false, useConstraintSolver >
 Contains the quantities which are constant within a finite volume in the two-phase two-component model. Specialization for chemical equilibrium. More...
 
class  Dumux::TwoPTwoCVolumeVariablesImplementation< Traits, true, useConstraintSolver >
 Contains the quantities which are constant within a finite volume in the two-phase two-component model. Specialization for chemical non-equilibrium. The equilibrium mole fraction is calculated using Henry's and Raoult's law. More...
 
class  Dumux::WaterAirProblem< TypeTag >
 Non-isothermal gas injection problem where a gas (e.g. air) is injected into a fully water saturated medium. More...
 
class  Dumux::WaterAirSpatialParams< GridGeometry, Scalar >
 Definition of the spatial parameters for the water-air problem. More...
 

Typedefs

template<class Traits , bool useConstraintSolver = true>
using Dumux::TwoPTwoCVolumeVariables = TwoPTwoCVolumeVariablesImplementation< Traits, Traits::ModelTraits::enableChemicalNonEquilibrium(), useConstraintSolver >
 Contains the quantities which are constant within a finite volume in the two-phase two-component model. More...
 

Typedef Documentation

◆ TwoPTwoCVolumeVariables

template<class Traits , bool useConstraintSolver = true>
using Dumux::TwoPTwoCVolumeVariables = typedef TwoPTwoCVolumeVariablesImplementation<Traits, Traits::ModelTraits::enableChemicalNonEquilibrium(), useConstraintSolver>

Contains the quantities which are constant within a finite volume in the two-phase two-component model.