3.5-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Classes | Namespaces
porenetwork/2p/model.hh File Reference

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

#include <dumux/common/properties.hh>
#include <dumux/flux/porenetwork/advection.hh>
#include <dumux/porenetwork/properties.hh>
#include <dumux/material/fluidmatrixinteractions/porenetwork/throat/transmissibility1p.hh>
#include <dumux/material/fluidmatrixinteractions/porenetwork/throat/transmissibility2p.hh>
#include <dumux/material/fluidmatrixinteractions/porenetwork/pore/2p/multishapelocalrules.hh>
#include <dumux/porousmediumflow/immiscible/localresidual.hh>
#include <dumux/porousmediumflow/nonisothermal/model.hh>
#include <dumux/porousmediumflow/nonisothermal/indices.hh>
#include <dumux/porousmediumflow/nonisothermal/iofields.hh>
#include <dumux/porousmediumflow/2p/model.hh>
#include "fluxvariablescache.hh"
#include "gridfluxvariablescache.hh"
#include "iofields.hh"
#include "volumevariables.hh"
#include "spatialparams.hh"

Go to the source code of this file.

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).

Classes

struct  Dumux::Properties::TTag::PNMTwoP
 
struct  Dumux::Properties::TTag::PNMTwoPNI
 The type tags for the corresponding non-isothermal problems. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::PNMTwoP >
 Set the volume variables property. More...
 
struct  Dumux::Properties::FluxVariablesCache< TypeTag, TTag::PNMTwoP >
 The flux variables cache. More...
 
struct  Dumux::Properties::GridFluxVariablesCache< TypeTag, TTag::PNMTwoP >
 The grid flux variables cache vector class. More...
 
struct  Dumux::Properties::SpatialParams< TypeTag, TTag::PNMTwoP >
 
struct  Dumux::Properties::AdvectionType< TypeTag, TTag::PNMTwoP >
 The advection type. More...
 
struct  Dumux::Properties::EnergyLocalResidual< TypeTag, TTag::PNMTwoP >
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::PNMTwoP >
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::PNMTwoPNI >
 model traits of the non-isothermal model. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::PNMTwoPNI >
 Set the volume variables property. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::PNMTwoPNI >
 Set the vtk output fields specific to the non-isothermal two-phase model. More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::PNMTwoPNI >
 Use the average for effective conductivities. More...
 

Namespaces

namespace  Dumux
 
namespace  Dumux::Properties
 
namespace  Dumux::Properties::TTag
 Type tag for numeric models.
 
Include dependency graph for porenetwork/2p/model.hh: