Adaption of the fully implicit scheme to the one-phase n-component pore network model. More...
#include <dumux/common/properties.hh>
#include <dumux/flux/porenetwork/fickslaw.hh>
#include <dumux/material/fluidmatrixinteractions/diffusivitymillingtonquirk.hh>
#include <dumux/material/fluidmatrixinteractions/porenetwork/throat/transmissibility1p.hh>
#include <dumux/material/fluidstates/immiscible.hh>
#include <dumux/porenetwork/properties.hh>
#include <dumux/porenetwork/1p/model.hh>
#include <dumux/porenetwork/1p/spatialparams.hh>
#include <dumux/porousmediumflow/compositional/localresidual.hh>
#include <dumux/porousmediumflow/nonisothermal/model.hh>
#include <dumux/porousmediumflow/nonisothermal/indices.hh>
#include <dumux/porousmediumflow/nonisothermal/iofields.hh>
#include <dumux/porousmediumflow/1pnc/model.hh>
#include <dumux/porousmediumflow/1pnc/iofields.hh>
#include "iofields.hh"
#include "volumevariables.hh"
Go to the source code of this file.
Adaption of the fully implicit scheme to the one-phase n-component pore network model.
A mass balance equation is formulated for each pore body \(i\) and each component \(\kappa\):
\[ V_i \frac{\partial (\varrho_{i} X^\kappa)}{\partial t} + \sum_j (\varrho X^\kappa Q)_{ij} = (V q^\kappa)_i ~. \]
\(V_i\) is the pore body volume, and the advective mass flow \((\varrho Q X^\kappa)_{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_i\) is a mass sink or source term defined on pore body \(i\).
Per default, the volume flow rate \(Q_{ij}\) follows a linear Hagen-Poiseuille-type law (PoreNetworkModel::CreepingFlow) which is only valid for \(Re < 1\):
\[ Q_{ij} = g_{ij} (p_{i} - p_{j} + \Psi) ~. \]
\(g_{ij}\) is a suitable throat conductance value (see e.g. PoreNetwork::TransmissibilityPatzekSilin) while \(p_i\) and \(p_j\) are averaged pore body pressures.
The (optional) influence of gravity is given by
\[ \Psi = \varrho \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 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\) and the mass or mole fraction of dissolved components \(X^\kappa\) or \(x^\kappa\).
Namespaces | |
namespace | Dumux |
namespace | Dumux::Properties |
namespace | Dumux::Properties::TTag |
Type tag for numeric models. | |