version 3.10-dev
porousmediumflow/2p2c/model.hh File Reference

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

Go to the source code of this file.

Description

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:

  • \( \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 \),
  • \( \mathbf{F}_{\mathrm{diff, mass}, \alpha}^\kappa \) represents the diffusive mass flux of component \( \kappa \) in phase \( \alpha \),
  • \( q_\alpha^\kappa \) is a source or sink term.

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:

  • Both phases are present: The saturation is used (either \(S_n\) or \(S_w\), dependent on the chosen Formulation), as long as \( 0 < S_\alpha < 1\).
  • Only wetting phase is present: The mole fraction of the nonwetting phase main component in the wetting phase \(x^{\kappa_n}_w\) is used, as long as the maximum mole fraction is not exceeded \((x^{\kappa_n}_w<x^{\kappa_n}_{w,max})\)
  • Only nonwetting phase is present: The mole fraction of the wetting phase main component in the nonwetting phase, \(x^{\kappa_w}_n\), is used, as long as the maximum mole fraction is not exceeded \((x^{\kappa_w}_n<x^{\kappa_w}_{n,max})\)

Classes

struct  Dumux::Properties::TTag::TwoPTwoC
 
struct  Dumux::Properties::TTag::TwoPTwoCNI
 
struct  Dumux::Properties::BaseModelTraits< TypeTag, TTag::TwoPTwoC >
 Set the model traits property. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::TwoPTwoC >
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::TwoPTwoC >
 Use the 2p2c VolumeVariables. More...
 
struct  Dumux::Properties::UseConstraintSolver< TypeTag, TTag::TwoPTwoC >
 Determines whether the constraint solver is used. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::TwoPTwoCNI >
 Set the non-isothermal model traits. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::TwoPTwoCNI >
 Set the volume variables property. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::TwoPTwoCNI >
 Set non-isothermal output fields. More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::TwoPTwoCNI >
 Somerton is used as default model to compute the effective thermal heat conductivity. More...
 
struct  Dumux::TwoPTwoCUnconstrainedModelTraits< TwoPTwoCModelTraits >
 
struct  Dumux::Properties::TTag::TwoPTwoCNonEquil
 
struct  Dumux::Properties::EquilibriumLocalResidual< TypeTag, TTag::TwoPTwoCNonEquil >
 
struct  Dumux::Properties::EquilibriumIOFields< TypeTag, TTag::TwoPTwoCNonEquil >
 Set the vtk output fields specific to this model. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::TwoPTwoCNonEquil >
 
struct  Dumux::Properties::EquilibriumModelTraits< TypeTag, TTag::TwoPTwoCNonEquil >
 Set equilibrium model traits. More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::TwoPTwoCNonEquil >
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::TwoPTwoCNonEquil >
 Use the nonequilibrium volume variables together with the 2p2c vol vars. More...
 
struct  Dumux::Properties::TTag::TwoPTwoCNINonEquil
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::TwoPTwoCNINonEquil >
 Set the non-isothermal model traits with the nonequilibrium model traits as isothermal traits. More...
 
struct  Dumux::Properties::EquilibriumIOFields< TypeTag, TTag::TwoPTwoCNINonEquil >
 Set the equilibrium IO fields which are in that case the nonisothermal io fields. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::TwoPTwoCNINonEquil >
 Use the nonequilibrium volume variables together with the 2p2c vol vars. More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::TwoPTwoCNINonEquil >
 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/2p2c/model.hh: