version 3.11-dev
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
porousmediumflow/mpnc/model.hh File Reference

A fully implicit model for MpNc flow using vertex centered finite volumes. More...

Go to the source code of this file.

Description

This model implements a M-phase flow of a fluid mixture composed of N chemical species. The phases are denoted by lower index α{1,,M}. All fluid phases are mixtures of NM1 chemical species which are denoted by the upper index κ{1,,N}.

The momentum approximation can be selected via "BaseFluxVariables": Darcy (ImplicitDarcyFluxVariables) and Forchheimer (ImplicitForchheimerFluxVariables) relations are available for all Box models. For details on Darcy's law see dumux/flux/darcyslaw.hh.

By inserting this into the equations for the conservation of the mass of each component, one gets one mass-continuity equation for each component κ,

κ((ϕϱαxακSα)t+div{vαϱαMαxακ})=qκ

with Mα being the average molar mass of phase α:

Mα=κMκxακ

Additionally:

  • ϕ is the porosity of the porous medium,
  • Sα represents the saturation of phase α,
  • ρα is the mass density of phase α,
  • Xακ is the mass fraction of component κ in phase α,
  • xακ is the mole fraction of component κ in phase α,
  • vα is the velocity of phase α,
  • Dα,pmκ is the effective diffusivity of component κ in phase α,
  • Mα is the average molar mass of phase α
  • qακ is a source or sink term.

For the missing M model assumptions, the model assumes that if a fluid phase is not present, the sum of the mole fractions of this fluid phase is smaller than 1, i.e.

α:Sα=0κxακ1

Also, if a fluid phase may be present at a given spatial location its saturation must be positive:

α:κxακ=1Sα0

Since at any given spatial location, a phase is always either present or not present, one of the strict equalities on the right hand side is always true, i.e.

α:Sα(κxακ1)=0

always holds.

These three equations constitute a non-linear complementarity problem, which can be solved using so-called non-linear complementarity functions Φ(a,b) which have the property

Φ(a,b)=0a0b0ab=0

Several non-linear complementarity functions have been suggested, e.g. the Fischer-Burmeister function

Φ(a,b)=a+ba2+b2.

This model uses

Φ(a,b)=min{a,b},

because of its piecewise linearity.

The model assumes local thermodynamic equilibrium and uses the following primary variables:

  • The component fugacities f1,,fN
  • The pressure of the first phase p1
  • The saturations of the first M1 phases S1,,SM1
  • Temperature T if the energy equation is enabled

Classes

struct  Dumux::MPNCModelTraits< nPhases, nComp, formulation, useM, repCompEqIdx >
 Specifies a number properties of the m-phase n-component model. More...
 
struct  Dumux::MPNCNonequilibriumModelTraits< NonEquilTraits >
 Specifies a number properties of the m-phase n-component model in conjunction with non-equilibrium. This is necessary because the mpnc indices are affected by the non-equilibrium which can thus not be plugged on top of it that easily. More...
 
struct  Dumux::MPNCVolumeVariablesTraits< PV, FSY, FST, SSY, SST, PT, MT, DT, EDM >
 Traits class for the mpnc volume variables. More...
 
struct  Dumux::Properties::TTag::MPNC
 
struct  Dumux::Properties::TTag::MPNCNI
 
struct  Dumux::Properties::TTag::MPNCNonequil
 
struct  Dumux::Properties::LocalResidual< TypeTag, TTag::MPNC >
 Use the MpNc local residual for the MpNc model. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::MPNC >
 Set the model traits property. More...
 
struct  Dumux::Properties::FluidState< TypeTag, TTag::MPNC >
 This model uses the compositional fluid state. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::MPNC >
 Set the volume variables property. More...
 
struct  Dumux::Properties::ReplaceCompEqIdx< TypeTag, TTag::MPNC >
 Per default, no component mass balance is replaced. More...
 
struct  Dumux::Properties::UseMoles< TypeTag, TTag::MPNC >
 Use mole fractions in the balance equations by default. More...
 
struct  Dumux::Properties::EffectiveDiffusivityModel< TypeTag, TTag::MPNC >
 Use the model after Millington (1961) for the effective diffusivity. More...
 
struct  Dumux::Properties::PressureFormulation< TypeTag, TTag::MPNC >
 Set the default pressure formulation to the pressure of the (most) wetting phase. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::MPNC >
 Set the vtk output fields specific to this model. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::MPNCNI >
 set the non-isothermal model traits More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::MPNCNI >
 Set the volume variables property. More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::MPNCNI >
 Somerton is used as default model to compute the effective thermal heat conductivity. More...
 
struct  Dumux::Properties::EquilibriumLocalResidual< TypeTag, TTag::MPNCNonequil >
 
struct  Dumux::Properties::EquilibriumIOFields< TypeTag, TTag::MPNCNonequil >
 Set the vtk output fields specific to this model. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::MPNCNonequil >
 
struct  Dumux::Properties::EquilibriumModelTraits< TypeTag, TTag::MPNCNonequil >
 set equilibrium model traits More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::MPNCNonequil >
 in case we do not assume full non-equilibrium one needs a thermal conductivity More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::MPNCNonequil >
 use the mineralization volume variables together with the 2pnc vol vars More...
 

Namespaces

namespace  Dumux
 
namespace  Dumux::Properties
 The energy balance equation for a porous solid.
 
namespace  Dumux::Properties::TTag
 Type tag for numeric models.
 
Include dependency graph for porousmediumflow/mpnc/model.hh: