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/thermalconductivity/somerton.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.
A two-phase one-component flow model using the fully implicit scheme.
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::TwoPOneCVolumeVariablesTraits< 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 |
namespace | Dumux::Properties |
namespace | Dumux::Properties::TTag |
Type tag for numeric models. | |