ncpmodel.hh File Reference #include <opm/material/densead/Math.hpp> #include "ncpproperties.hh" #include "ncplocalresidual.hh" #include "ncpextensivequantities.hh" #include "ncpprimaryvariables.hh" #include "ncpboundaryratevector.hh" #include "ncpratevector.hh" #include "ncpintensivequantities.hh" #include "ncpnewtonmethod.hh" #include "ncpindices.hh" #include <opm/common/Exceptions.hpp> #include <opm/models/common/multiphasebasemodel.hh> #include <opm/models/common/energymodule.hh> #include <opm/models/common/diffusionmodule.hh> #include <opm/models/io/vtkcompositionmodule.hh> #include <opm/models/io/vtkenergymodule.hh> #include <opm/models/io/vtkdiffusionmodule.hh> #include <opm/material/common/Valgrind.hpp> #include <dune/common/fvector.hh> #include <sstream> #include <string> #include <vector> #include <array>
Include dependency graph for ncpmodel.hh:
Go to the source code of this file.
Detailed DescriptionA compositional multi-phase model based on non-linear complementarity functions. This model implements a -phase flow of a fluid mixture composed of chemical species. The phases are denoted by lower index . All fluid phases are mixtures of chemical species which are denoted by the upper index . By default, the standard multi-phase Darcy approach is used to determine the velocity, i.e.
although the actual approach which is used can be specified via the template<class TypeTag>
struct FluxModule<TypeTag, TTag::MyProblemTypeTag> { using type = ForchheimerFluxModule<TypeTag>; };
The core of the model is the conservation mass of each component by means of the equation
For the missing model assumptions, the model uses non-linear complementarity functions. These are based on the observation that if a fluid phase is not present, the sum of the mole fractions of this fluid phase is smaller than , i.e.
Also, if a fluid phase may be present at a given spatial location its saturation must be non-negative:
Since at any given spatial location, a phase is always either present or not present, one of the strict equalities on the right hand side is always true, i.e.
always holds. These three equations constitute a non-linear complementarity problem, which can be solved using so-called non-linear complementarity functions . Such functions have the property
Several non-linear complementarity functions have been suggested, e.g. the Fischer-Burmeister function
This model uses
because of its piecewise linearity. The model assumes local thermodynamic equilibrium and uses the following primary variables:
|
||||||||||||||||