version 3.11-dev
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts

Generalized multi-phase, multi-component Darcy flow. More...

Description

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

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:

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:

Files

file  porousmediumflow/mpnc/indices.hh
 The primary variable and equation indices for the MpNc model.
 
file  initialconditionhelper.hh
 A helper function to get the correct initial conditions by updating the fluidstate and defining the primary variables needed for equilibrium mpnc models for the MPNC model.
 
file  porousmediumflow/mpnc/iofields.hh
 Adds I/O fields specific to the mpnc model.
 
file  porousmediumflow/mpnc/localresidual.hh
 MpNc specific details needed to approximately calculate the local defect in the fully implicit scheme.
 
file  porousmediumflow/mpnc/model.hh
 A fully implicit model for MpNc flow using vertex centered finite volumes.
 
file  pressureformulation.hh
 Enumeration of the formulations accepted by the MpNc model.
 
file  porousmediumflow/mpnc/volumevariables.hh
 Contains the secondary variables (Quantities which are constant within a finite volume) of the MpNc model.
 

Classes

struct  Dumux::MPNCIndices< numPhases, numEqBalance >
 The primary variable and equation indices for the MpNc model. More...
 
class  Dumux::MPNCIOFields
 Adds I/O fields specific to the mpnc model. More...
 
class  Dumux::MPNCLocalResidual< TypeTag >
 MpNc specific details needed to approximately calculate the local defect in the fully implicit scheme. More...
 
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...
 

Typedefs

template<class Traits >
using Dumux::MPNCVolumeVariables = MPNCVolumeVariablesImplementation< Traits, Traits::ModelTraits::enableChemicalNonEquilibrium()>
 Contains the quantities which are constant within a finite volume in the MpNc model. More...
 

Enumerations

enum class  Dumux::MpNcPressureFormulation { Dumux::MpNcPressureFormulation::mostWettingFirst , Dumux::MpNcPressureFormulation::leastWettingFirst }
 Enumerates the formulations which the MpNc model accepts. More...
 

Typedef Documentation

◆ MPNCVolumeVariables

template<class Traits >
using Dumux::MPNCVolumeVariables = typedef MPNCVolumeVariablesImplementation<Traits, Traits::ModelTraits::enableChemicalNonEquilibrium()>
Template Parameters
TraitsClass encapsulating types to be used by the vol vars

Enumeration Type Documentation

◆ MpNcPressureFormulation

enum class Dumux::MpNcPressureFormulation
strong
Enumerator
mostWettingFirst 
leastWettingFirst