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

Adaption of the fully implicit scheme to the two-phase n-component fully implicit model. More...

#include <dune/common/fvector.hh>
#include <dumux/common/properties.hh>
#include <dumux/material/spatialparams/fv.hh>
#include <dumux/material/fluidmatrixinteractions/diffusivitymillingtonquirk.hh>
#include <dumux/material/fluidmatrixinteractions/2p/thermalconductivitysomerton.hh>
#include <dumux/porousmediumflow/properties.hh>
#include <dumux/porousmediumflow/compositional/localresidual.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 <dumux/porousmediumflow/2p/formulation.hh>
#include "volumevariables.hh"
#include "iofields.hh"
#include "indices.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.

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:

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

By inserting this 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} \mbox{\bf K} (\text{grad}\, p_\alpha - \varrho_{\alpha} \mbox{\bf 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\)

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\) 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.

Classes

struct  Dumux::TwoPNCModelTraits< nComp, useMol, setMoleFractionForFP, formulation, repCompEqIdx >
 Specifies a number properties of two-phase n-component models. More...
 
struct  Dumux::Properties::TTag::TwoPNC
 
struct  Dumux::Properties::TTag::TwoPNCNI
 
struct  Dumux::Properties::PrimaryVariables< TypeTag, TTag::TwoPNC >
 The primary variables vector for the 2pnc model. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::TwoPNC >
 Set the volume variables property. More...
 
struct  Dumux::Properties::BaseModelTraits< TypeTag, TTag::TwoPNC >
 Set the base model traits. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::TwoPNC >
 default the actually used traits to the base traits More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::TwoPNC >
 Set the vtk output fields specific to this model. More...
 
struct  Dumux::Properties::LocalResidual< TypeTag, TTag::TwoPNC >
 Use the compositional local residual. More...
 
struct  Dumux::Properties::ReplaceCompEqIdx< TypeTag, TTag::TwoPNC >
 Per default, no component mass balance is replaced. More...
 
struct  Dumux::Properties::Formulation< TypeTag, TTag::TwoPNC >
 Default formulation is pw-Sn, overwrite if necessary. More...
 
struct  Dumux::Properties::SetMoleFractionsForFirstPhase< TypeTag, TTag::TwoPNC >
 Set the primary variables mole fractions for the wetting or non-wetting phase. More...
 
struct  Dumux::Properties::UseMoles< TypeTag, TTag::TwoPNC >
 Use mole fractions in the balance equations by default. More...
 
struct  Dumux::Properties::EffectiveDiffusivityModel< TypeTag, TTag::TwoPNC >
 Use the model after Millington (1961) for the effective diffusivity. More...
 
struct  Dumux::Properties::FluidState< TypeTag, TTag::TwoPNC >
 This model uses the compositional fluid state. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::TwoPNCNI >
 Set the non-isothermal model traits. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::TwoPNCNI >
 Set the volume variables property. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::TwoPNCNI >
 Set non-isothermal output fields. More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::TwoPNCNI >
 Somerton is used as default model to compute the effective thermal heat conductivity. More...
 

Namespaces

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