3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Classes | Namespaces
porousmediumflow/2p1c/model.hh File Reference

A two-phase one-component flow model using the fully implicit scheme. More...

#include <dune/common/fvector.hh>
#include <dumux/common/properties.hh>
#include <dumux/material/fluidmatrixinteractions/2p/thermalconductivitysomerton.hh>
#include <dumux/material/fluidstates/compositional.hh>
#include <dumux/porousmediumflow/properties.hh>
#include <dumux/porousmediumflow/2p/formulation.hh>
#include <dumux/porousmediumflow/compositional/switchableprimaryvariables.hh>
#include <dumux/porousmediumflow/nonisothermal/model.hh>
#include <dumux/porousmediumflow/nonisothermal/indices.hh>
#include <dumux/porousmediumflow/nonisothermal/iofields.hh>
#include "darcyslaw.hh"
#include "iofields.hh"
#include "localresidual.hh"
#include "indices.hh"
#include "volumevariables.hh"

Go to the source code of this file.

Description

A two-phase one-component flow model using the fully implicit scheme.

Note
The 2p1c model requires the use of the non-isothermal extension found in dumux/porousmediumflow/nonisothermal.

This model is designed for simulating two fluid phases with water as the only component. It is particularly suitable for the simulation of steam injection in saturated conditions.

The model implements the flow of two phases and one component, i.e. a pure liquid (e.g. water) and its vapor (e.g. steam), \(\alpha \in \{ w, n \}\) using a standard multi-phase Darcy approach as the equation for the conservation of momentum, i.e.

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

By inserting this into the equation for the conservation of the phase mass, one gets

\[ \phi \frac{\partial\ \sum_\alpha (\rho_\alpha S_\alpha)}{\partial t} \\-\sum \limits_ \alpha \text{div} \left \{\rho_\alpha \frac{k_{r\alpha}}{\mu_\alpha} \mathbf{K} (\mathbf{grad}p_\alpha - \rho_\alpha \mathbf{g}) \right \} -q^w =0 \]

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\), the number of unknowns can be reduced to two. The model features a primary variable switch. If only one phase is present, \(p_n\) and \(T\) are the primary variables. In the presence of two phases, \(p_n\) and \(S_w\) become the new primary variables.

Classes

struct  Dumux::TwoPOneCNIModelTraits< f >
 Specifies a number properties of models considering two phases with water as a single component. More...
 
struct  Dumux::TwoPOneCNIVolumeVariablesTraits< PV, FSY, FST, SSY, SST, PT, MT >
 Traits class for the two-phase model. More...
 
struct  Dumux::Properties::TTag::TwoPOneCNI
 
struct  Dumux::Properties::FluidState< TypeTag, TTag::TwoPOneCNI >
 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::Formulation< TypeTag, TTag::TwoPOneCNI >
 Set the default formulation to pw-sn. More...
 
struct  Dumux::Properties::UseBlockingOfSpuriousFlow< TypeTag, TTag::TwoPOneCNI >
 Do not block spurious flows by default. More...
 
struct  Dumux::Properties::LocalResidual< TypeTag, TTag::TwoPOneCNI >
 The specific local residual (i.e. balance equations). More...
 
struct  Dumux::Properties::AdvectionType< TypeTag, TTag::TwoPOneCNI >
 Use a modified version of Darcy's law which allows for blocking of spurious flows. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::TwoPOneCNI >
 Set the volume variables property. More...
 
struct  Dumux::Properties::PrimaryVariables< TypeTag, TTag::TwoPOneCNI >
 The primary variables vector for the 2p1cni model. More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::TwoPOneCNI >
 Somerton is used as default model to compute the effective thermal heat conductivity. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::TwoPOneCNI >
 Set the non-isothermal model traits. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::TwoPOneCNI >
 The non-isothermal vtk output fields. More...
 

Namespaces

namespace  Dumux
 make the local view function available whenever we use the grid geometry
 
namespace  Dumux::Properties
 
namespace  Dumux::Properties::TTag
 Type tag for numeric models.
 
Include dependency graph for porousmediumflow/2p1c/model.hh: