version 3.9-dev

Two-phase (immiscible) flow. More...

Description

A two-phase-flow, isothermal pore-network model using the fully implicit scheme.

A mass balance equation is formulated for each pore body \(i\) and each phase \(\alpha\):

\[ V_i \frac{\partial (\varrho_\alpha S_\alpha)_i}{\partial t} + \sum_j (\varrho_\alpha Q_\alpha)_{ij} = (V q_\alpha)_i ~. \]

\(V_i\) is the pore body volume, and the advective mass flow \((\varrho_\alpha Q_\alpha)_{ij}\) through throat \(ij\) can be based on the fluid phase density \(\varrho\) either of the upstream pore body \(i\) or \(j\) (upwinding) or on the respective averaged value. \(q_\alpha\) is a mass sink or source term defined on pore body \(i\).

Per default, the volume flow rate \(Q_{\alpha,ij}\) follows a linear Hagen-Poiseuille-type law (PoreNetworkModel::CreepingFlow) which is only valid for \(Re < 1\):

\[ Q_{\alpha,ij} = g_{\alpha, ij} (p_{\alpha, i} - p_{\alpha, j} + \Psi_\alpha) ~. \]

\(g_{\alpha,ij}\) is a suitable throat conductance value that takes into account the presence/saturation of the individual phases while \(p_{\alpha,i}\) and \(p_{\alpha,j}\) are averaged pore body phase pressures.

The (optional) influence of gravity is given by

\[ \Psi_\alpha = \varrho_\alpha \mathbf{g} (\mathbf{x_i} - \mathbf{x_j}) ~, \]

where \(\mathbf{x_i} - \mathbf{x_j}\) is the distance vector between the centers of pore bodies \(i\) and \(j\) and \(\mathbf{g}\) is the gravitational acceleration.

The primary variables are the wetting phase pressure and the the nonwetting phase saturation ( \(p_w\) and \(S_n\)) or the nonwetting phase pressure and the the wetting phase saturation ( \(p_n\) and \(S_w\)), depending on the chose formulation (see TwoPModel).

Files

file  porenetwork/2p/elementfluxvariablescache.hh
 Element flux variable cache.
 
file  porenetwork/2p/fluxvariablescache.hh
 Flux variables cache for the two-phase-flow PNM.
 
file  porenetwork/2p/gridfluxvariablescache.hh
 Global flux variable cache.
 
file  invasionstate.hh
 Invasion state class for the two-phase PNM.
 
file  porenetwork/2p/iofields.hh
 
file  porenetwork/2p/model.hh
 A two-phase-flow, isothermal pore-network model using the fully implicit scheme.
 
file  newtonconsistencychecks.hh
 
file  porenetwork/2p/newtonsolver.hh
 
file  porenetwork/2p/spatialparams.hh
 The two-phase spatial parameters for pore-network models.
 
file  staticdrainge.hh
 A (quasi-) static two-phase pore-network model for drainage processes.
 
file  porenetwork/2p/volumevariables.hh
 

Classes

class  Dumux::PoreNetwork::PNMTwoPElementFluxVariablesCache< GFVC, cachingEnabled >
 The flux variables caches for an element. More...
 
class  Dumux::PoreNetwork::PNMTwoPElementFluxVariablesCache< GFVC, true >
 The flux variables caches for an element with caching enabled. More...
 
class  Dumux::PoreNetwork::PNMTwoPElementFluxVariablesCache< GFVC, false >
 The flux variables caches for an element with caching disabled. More...
 
class  Dumux::PoreNetwork::TwoPFluxVariablesCache< AdvectionType, maxNumCorners >
 Flux variables cache for the two-phase-flow PNM Store data required for flux calculation. More...
 
struct  Dumux::PoreNetwork::PNMTwoPDefaultGridFVCTraits< P, FVC, IS >
 Flux variable caches traits. More...
 
class  Dumux::PoreNetwork::PNMTwoPGridFluxVariablesCache< Problem, FluxVariablesCache, cachingEnabled, Traits >
 Flux variable caches on a gridview. More...
 
class  Dumux::PoreNetwork::PNMTwoPGridFluxVariablesCache< P, FVC, true, Traits >
 The grid flux variables cache for the two-phase PNM hodling the invasion state of the throats. More...
 
class  Dumux::PoreNetwork::PNMTwoPGridFluxVariablesCache< P, FVC, false, Traits >
 The grid flux variables cache for the two-phase PNM hodling the invasion state of the throats. More...
 
class  Dumux::PoreNetwork::TwoPInvasionState< P >
 This class updates the invasion state for the two-phase PNM. More...
 
class  Dumux::PoreNetwork::TwoPIOFields
 Adds output fields specific to the PNM 2p model. More...
 
class  Dumux::PoreNetwork::TwoPNewtonConsistencyChecks< GridVariables, SolutionVector >
 Consistency checks for the PNM two-phase model. More...
 
class  Dumux::PoreNetwork::TwoPNewtonSolver< Assembler, LinearSolver, NewtonConsistencyChecks >
 A two-phase PNM specific newton solver. More...
 
class  Dumux::PoreNetwork::TwoPSpatialParams< GridGeometry, Scalar, LocalRules, Implementation >
 The base class for spatial parameters for pore-network models. More...
 
class  Dumux::PoreNetwork::TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules >
 The default class for spatial parameters for two-phase pore-network models. More...
 
class  Dumux::PoreNetwork::TwoPStaticDrainage< GridGeometry, Scalar >
 A (quasi-) static two-phase pore-network model for drainage processes. This assumes that there are no pressure gradients within the phases and thus, no flow. More...
 
class  Dumux::PoreNetwork::TwoPVolumeVariables< Traits >
 Contains the quantities which are are constant within a finite volume (the pore body) in the two-phase model. More...