version 3.10-dev
porenetwork/2pnc/model.hh File Reference

A two-phase multi-compositional pore-network model using fully implicit scheme. More...

Go to the source code of this file.

Description

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

\[ V_i \frac{\partial (\sum_{\alpha} (x^\kappa_\alpha \varrho_\alpha S_\alpha)_i) }{\partial t} + \sum_\alpha \sum_j (x^\kappa_\alpha \varrho_\alpha Q_\alpha)_{ij} + \sum_\alpha \sum_j (A_\alpha j^\kappa_\alpha)_{ij}= (V q^\kappa)_i ~. \]

\(V_i\) is the pore body volume, \(x^\kappa_\alpha\) resepresents the mole fraction of component \(\kappa\) in phase \(\alpha\) , 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. \(j^\kappa_\alpha\) represents the diffuive flux vector and \(A_\alpha\) the area of throat cross section occupied by phase \(\alpha\). \(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} \cdot (\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 gravity vector.

The model is able to use either mole or mass fractions. The property useMoles can be set to either true or false in the problem file. Make sure that the according units are used in the problem setup. useMoles is set to true by default.

The primary variables are the pressure \(p_\alpha\) for phase \(\alpha\) and the mole or mass fraction of dissolved components in phase \(\alpha\) \(x^\kappa_\alpha\) or \(X^\kappa_\alpha\).

Classes

struct  Dumux::Properties::TTag::PNMTwoPNC
 
struct  Dumux::Properties::TTag::PNMTwoPNCNI
 The type tags for the corresponding non-isothermal problems. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::PNMTwoPNC >
 Set the volume variables property. More...
 
struct  Dumux::Properties::PrimaryVariables< TypeTag, TTag::PNMTwoPNC >
 The primary variables vector for the 2pnc model. More...
 
struct  Dumux::Properties::SpatialParams< TypeTag, TTag::PNMTwoPNC >
 
struct  Dumux::Properties::AdvectionType< TypeTag, TTag::PNMTwoPNC >
 The advection type. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::PNMTwoPNC >
 
struct  Dumux::Properties::GridFluxVariablesCache< TypeTag, TTag::PNMTwoPNC >
 The grid flux variables cache vector class. More...
 
struct  Dumux::Properties::FluxVariablesCache< TypeTag, TTag::PNMTwoPNC >
 The flux variables cache. More...
 
struct  Dumux::Properties::MolecularDiffusionType< TypeTag, TTag::PNMTwoPNC >
 We use fick's law as the default for the diffusive fluxes. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::PNMTwoPNCNI >
 The model traits of the non-isothermal model. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::PNMTwoPNCNI >
 Set the volume variables property. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::PNMTwoPNCNI >
 Set non-isothermal output fields. More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::PNMTwoPNCNI >
 

Namespaces

namespace  Dumux
 
namespace  Dumux::Properties
 The energy balance equation for a porous solid.
 
namespace  Dumux::Properties::TTag
 Type tag for numeric models.
 
Include dependency graph for porenetwork/2pnc/model.hh: