Two-phase (immiscible) flow. More...
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... | |