3.4
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Classes | Namespaces
porousmediumflow/3pwateroil/model.hh File Reference

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

#include <dune/common/fvector.hh>
#include <dumux/common/properties.hh>
#include <dumux/material/spatialparams/fv.hh>
#include <dumux/material/fluidmatrixinteractions/3p/thermalconductivitysomerton3p.hh>
#include <dumux/material/fluidmatrixinteractions/diffusivitymillingtonquirk.hh>
#include <dumux/porousmediumflow/properties.hh>
#include <dumux/porousmediumflow/3p/model.hh>
#include <dumux/porousmediumflow/nonisothermal/model.hh>
#include <dumux/porousmediumflow/nonisothermal/indices.hh>
#include <dumux/porousmediumflow/nonisothermal/iofields.hh>
#include <dumux/porousmediumflow/compositional/switchableprimaryvariables.hh>
#include "indices.hh"
#include "model.hh"
#include "volumevariables.hh"
#include "localresidual.hh"
#include "iofields.hh"

Go to the source code of this file.

Description

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

The model is designed for simulating three fluid phases with water, gas, and a liquid contaminant (NAPL - non-aqueous phase liquid) This model implements three-phase two-component flow of three fluid phases \(\alpha \in \{ water, gas, NAPL \}\) each composed of up to two components \(\kappa \in \{ water, contaminant \}\). 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} \mathbf{g} \right) \]

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

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

Note that these balance equations are molar.

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.

The model uses commonly applied auxiliary conditions like \(S_w + S_n + S_g = 1\) for the saturations and \(x^w_\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. Different cases can be distinguished:

Classes

struct  Dumux::ThreePWaterOilModelTraits< onlyGasPhase >
 Specifies a number properties of the three-phase two-component model. More...
 
struct  Dumux::Properties::TTag::ThreePWaterOilNI
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::ThreePWaterOilNI >
 Set the non-isothermal model traits property. More...
 
struct  Dumux::Properties::FluidState< TypeTag, TTag::ThreePWaterOilNI >
 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::ThreePWaterOilNI >
 The local residual function of the conservation equations. More...
 
struct  Dumux::Properties::ReplaceCompEqIdx< TypeTag, TTag::ThreePWaterOilNI >
 Set as default that no component mass balance is replaced by the total mass balance. More...
 
struct  Dumux::Properties::PrimaryVariables< TypeTag, TTag::ThreePWaterOilNI >
 The primary variables vector for the 3p3c model. More...
 
struct  Dumux::Properties::OnlyGasPhaseCanDisappear< TypeTag, TTag::ThreePWaterOilNI >
 Determines whether a constraint solver should be used explicitly. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::ThreePWaterOilNI >
 Set the volume variables property. More...
 
struct  Dumux::Properties::EffectiveDiffusivityModel< TypeTag, TTag::ThreePWaterOilNI >
 Use the model after Millington (1961) for the effective diffusivity. More...
 
struct  Dumux::Properties::UseMoles< TypeTag, TTag::ThreePWaterOilNI >
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::ThreePWaterOilNI >
 Somerton is used as default model to compute the effective thermal heat conductivity. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::ThreePWaterOilNI >
 Set the non-isothermal vkt output fields. More...
 

Namespaces

namespace  Dumux
 
namespace  Dumux::Properties
 
namespace  Dumux::Properties::TTag
 Type tag for numeric models.
 
Include dependency graph for porousmediumflow/3pwateroil/model.hh: