version 3.10-dev

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

Description

Properties for a two-phase, two-component model for flow in porous media.

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 \{ \kappa_w, \kappa_n \}\), where \(\kappa_w\) and \(\kappa_n\) are the main components of the wetting and nonwetting phases, respectively. The governing equations are the mass or the mole conservation equations of the two components, depending on the property UseMoles. The mass balance equations are given as

\[ \frac{\partial (\sum_\alpha \phi \rho_\alpha X_\alpha^\kappa S_\alpha)}{\partial t} - \sum_\alpha \nabla \cdot \left\{ \rho_\alpha X_\alpha^\kappa v_\alpha \right\} - \sum_\alpha \nabla \cdot \mathbf{F}_{\mathrm{diff, mass}, \alpha}^\kappa - \sum_\alpha q_\alpha^\kappa = 0 \qquad \kappa \in \{\kappa_w, \kappa_n\} \, , \alpha \in \{w, n\}. \]

The mole balance is given as

\[ \frac{\partial (\sum_\alpha \phi \varrho_{m, \alpha} x_\alpha^\kappa S_\alpha)}{\partial t} + \sum_\alpha \nabla \cdot \left\{ \varrho_{m, \alpha} x_\alpha^\kappa v_\alpha \right\} + \sum_\alpha \nabla \cdot \mathbf{F}_{\mathrm{diff, mole}, \alpha}^\kappa - \sum_\alpha q_\alpha^\kappa = 0 \qquad \kappa \in \{\kappa_w, \kappa_n\} \, , \alpha \in \{w, n\}, \]

where:

Boundary conditions and sources have to be defined by the user in the corresponding units. The default setting for the property UseMoles can be found in the 2pnc model.

Per default, the Darcy's and Fick's law are used for the fluid phase velocities and the diffusive fluxes, respectively. See dumux/flux/darcyslaw.hh and dumux/flux/fickslaw.hh for more details.

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}_\alpha + x^{\kappa_n}_\alpha = 1\), the number of unknowns can be reduced to two. In single-phase regimes, the used primary variables are either \(p_w\) and \(S_n\) (default) 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.

In two-phase flow regimes the second primary variable depends on the phase state and is the mole or mass fraction (depending on the property UseMoles). The following cases can be distinguished:

Files

file  porousmediumflow/2p2c/model.hh
 Properties for a two-phase, two-component model for flow in porous media.
 
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...
 

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>