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 | elementfluxvariablescache.hh | 
| Element flux variable cache. | |
| file | fluxvariablescache.hh | 
| Flux variables cache for the two-phase-flow PNM. | |
| file | gridfluxvariablescache.hh | 
| Global flux variable cache. | |
| file | invasionstate.hh | 
| Invasion state class for the two-phase PNM. | |
| file | iofields.hh | 
| Adds output fields specific to the PNM 2p model. | |
| file | model.hh | 
| A two-phase-flow, isothermal pore-network model using the fully implicit scheme. | |
| file | newtonconsistencychecks.hh | 
| Consistency checks for the PNM two-phase model. | |
| file | newtonsolver.hh | 
| A two-phase PNM specific newton solver. | |
| file | 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 | volumevariables.hh | 
| Contains the quantities which are are constant within a finite volume (the pore body) in the two-phase model. | |
| 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. | |
| 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. | |
| 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... | |