Loading [MathJax]/extensions/TeX/AMSmath.js
3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Namespaces
porousmediumflow/2pncmin/model.hh File Reference

Adaption of the fully implicit scheme to the two-phase n-component fully implicit model with additional solid/mineral phases. More...

#include <dumux/porousmediumflow/2pnc/model.hh>
#include <dumux/porousmediumflow/2pnc/volumevariables.hh>
#include <dumux/material/solidstates/compositionalsolidstate.hh>
#include <dumux/porousmediumflow/mineralization/model.hh>
#include <dumux/porousmediumflow/mineralization/localresidual.hh>
#include <dumux/porousmediumflow/mineralization/volumevariables.hh>
#include <dumux/porousmediumflow/mineralization/iofields.hh>
#include <dumux/porousmediumflow/nonisothermal/indices.hh>
#include <dumux/porousmediumflow/nonisothermal/iofields.hh>
#include <dumux/material/fluidmatrixinteractions/2p/thermalconductivity/somerton.hh>

Go to the source code of this file.

Description

Adaption of the fully implicit scheme to the two-phase n-component fully implicit model with additional solid/mineral phases.

This model implements two-phase n-component flow of two compressible and partially miscible fluids \alpha \in \{ w, n \} composed of the n components \kappa \in \{ w, n,\cdots \} in combination with mineral precipitation and dissolution. The solid phases. The standard multiphase Darcy approach is used as the equation for the conservation of momentum. For details on Darcy's law see dumux/flux/darcyslaw.hh.

By inserting Darcy's law into the equations for the conservation of the components, one gets one transport equation for each component

\begin{eqnarray*} && \frac{\partial (\sum_\alpha \varrho_\alpha X_\alpha^\kappa \phi S_\alpha )} {\partial t} - \sum_\alpha \text{div} \left\{ \varrho_\alpha X_\alpha^\kappa \frac{k_{r\alpha}}{\mu_\alpha} \mathbf{K} (\text{grad}\, p_\alpha - \varrho_{\alpha} \mathbf{g}) \right\} \nonumber \\ \nonumber \\ &-& \sum_\alpha \text{div} \left\{{\bf D_{\alpha, pm}^\kappa} \varrho_{\alpha} \text{grad}\, X^\kappa_{\alpha} \right\} - \sum_\alpha q_\alpha^\kappa = 0 \qquad \kappa \in \{w, a,\cdots \} \, , \alpha \in \{w, g\} \end{eqnarray*}

The solid or mineral phases are assumed to consist of a single component. Their mass balance consist only of a storage and a source term: \frac{\partial ( \varrho_\lambda \phi_\lambda )} {\partial t} = q_\lambda

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 + X^\kappa_n = 1, the number of unknowns can be reduced to number of components.

The used primary variables are, like in the two-phase model, either p_w and S_n or p_n and S_w. The formulation which ought to be used can be specified by setting the Formulation property to either TwoPTwoCIndices::pWsN or TwoPTwoCIndices::pNsW. By default, the model uses p_w and S_n.

Moreover, the second primary variable depends on the phase state, since a primary variable switch is included. The phase state is stored for all nodes of the system. The model is uses mole fractions. Following cases can be distinguished:

For the other components, the mole fraction x^\kappa_w is the primary variable. The primary variable of the solid phases is the volume fraction \phi_\lambda = \frac{V_\lambda}{V_{total}}.

The source an sink terms link the mass balances of the n-transported component to the solid phases. The porosity \phi is updated according to the reduction of the initial (or solid-phase-free porous medium) porosity \phi_0 by the accumulated volume fractions of the solid phases: \phi = \phi_0 - \sum (\phi_\lambda) Additionally, the permeability is updated depending on the current porosity.

Classes

struct  Dumux::Properties::TTag::TwoPNCMin
 
struct  Dumux::Properties::TTag::TwoPNCMinNI
 
struct  Dumux::Properties::LocalResidual< TypeTag, TTag::TwoPNCMin >
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::TwoPNCMin >
 use the mineralization volume variables together with the 2pnc vol vars More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::TwoPNCMin >
 Set the vtk output fields specific to this model. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::TwoPNCMin >
 The 2pnc model traits define the non-mineralization part. More...
 
struct  Dumux::Properties::SolidState< TypeTag, TTag::TwoPNCMin >
 The two-phase model uses the immiscible fluid state. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::TwoPNCMinNI >
 Set non-isothermal model traits. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::TwoPNCMinNI >
 Set the volume variables property. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::TwoPNCMinNI >
 Non-isothermal vtkoutput. More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::TwoPNCMinNI >
 Use the effective thermal conductivities calculated using the Somerton method. More...
 

Namespaces

namespace  Dumux
 Adaption of the non-isothermal two-phase two-component flow model to problems with CO2.
 
namespace  Dumux::Properties
 
namespace  Dumux::Properties::TTag
 Type tag for numeric models.
 
Include dependency graph for porousmediumflow/2pncmin/model.hh: