blackoilproblem.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3/*
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 2 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18
19 Consult the COPYING file in the top-level source directory of this
20 module for the precise wording of the license and the list of
21 copyright holders.
22*/
28#ifndef EWOMS_BLACKOIL_PROBLEM_HH
29#define EWOMS_BLACKOIL_PROBLEM_HH
30
31#include "blackoilproperties.hh"
32
34
35namespace Opm {
36
41template<class TypeTag>
43{
44private:
46 using Implementation = GetPropType<TypeTag, Properties::Problem>;
50
51public:
59 {}
60
67 Scalar maxGasDissolutionFactor(unsigned, unsigned) const
68 { return std::numeric_limits<Scalar>::max()/2; }
69
76 Scalar maxOilVaporizationFactor(unsigned, unsigned) const
77 { return std::numeric_limits<Scalar>::max()/2; }
78
85 Scalar maxOilSaturation(unsigned) const
86 { return 1.0; }
87
91 template <class Context>
92 unsigned pvtRegionIndex(const Context&,
93 unsigned,
94 unsigned) const
95 { return 0; }
96
100 template <class Context>
101 unsigned satnumRegionIndex(const Context&,
102 unsigned,
103 unsigned) const
104 { return 0; }
105
106 Scalar satnumRegionIndex(unsigned) const
107 { return 0; }
108
112 template <class Context>
113 unsigned miscnumRegionIndex(const Context&,
114 unsigned,
115 unsigned) const
116 { return 0; }
117
121 template <class Context>
122 unsigned plmixnumRegionIndex(const Context&,
123 unsigned,
124 unsigned) const
125 { return 0; }
126
130 template <class Context>
131 Scalar rockCompressibility(const Context&,
132 unsigned,
133 unsigned) const
134 { return 0.0; }
135
139 Scalar rockCompressibility(unsigned) const
140 { return 0.0; }
141
145 template <class Context>
146 Scalar rockReferencePressure(const Context&,
147 unsigned,
148 unsigned) const
149 { return 1e5; }
150
154 Scalar rockReferencePressure(unsigned) const
155 { return 1e5; }
156
163 Scalar referenceTemperature() const
164 { return 273.15 + 15.56; /* [K] */ }
165
172 template <class Evaluation>
173 Scalar rockCompPoroMultiplier(const IntensiveQuantities&,
174 unsigned) const
175 { return 1.0; }
176
177 template <class LhsEval>
178 LhsEval rockCompTransMultiplier(const IntensiveQuantities&,
179 unsigned) const
180 { return 1.0; }
181
182private:
184 Implementation& asImp_()
185 { return *static_cast<Implementation *>(this); }
186
188 const Implementation& asImp_() const
189 { return *static_cast<const Implementation *>(this); }
190};
191
192} // namespace Opm
193
194#endif
Declares the properties required by the black oil model.
Base class for all problems which use the black-oil model.
Definition: blackoilproblem.hh:43
Scalar rockCompressibility(unsigned) const
Returns the compressibility of the porous medium of a cell.
Definition: blackoilproblem.hh:139
Scalar maxOilSaturation(unsigned) const
Returns the maximum value of the oil saturation seen at the current time for a given degree of freedo...
Definition: blackoilproblem.hh:85
unsigned plmixnumRegionIndex(const Context &, unsigned, unsigned) const
Returns the index of the relevant region for polymer mixing functions.
Definition: blackoilproblem.hh:122
LhsEval rockCompTransMultiplier(const IntensiveQuantities &, unsigned) const
Definition: blackoilproblem.hh:178
unsigned miscnumRegionIndex(const Context &, unsigned, unsigned) const
Returns the index of the relevant region for solvent mixing functions.
Definition: blackoilproblem.hh:113
BlackOilProblem(Simulator &simulator)
Definition: blackoilproblem.hh:57
Scalar referenceTemperature() const
Returns the reference temperature.
Definition: blackoilproblem.hh:163
unsigned satnumRegionIndex(const Context &, unsigned, unsigned) const
Returns the index of the relevant region for saturation functions.
Definition: blackoilproblem.hh:101
Scalar satnumRegionIndex(unsigned) const
Definition: blackoilproblem.hh:106
Scalar rockCompressibility(const Context &, unsigned, unsigned) const
Returns the compressibility of the porous medium of a cell.
Definition: blackoilproblem.hh:131
Scalar maxOilVaporizationFactor(unsigned, unsigned) const
Returns the maximum value of the oil vaporization factor at the current time for a given degree of fr...
Definition: blackoilproblem.hh:76
Scalar rockReferencePressure(const Context &, unsigned, unsigned) const
Returns the reference pressure for rock the compressibility of a cell.
Definition: blackoilproblem.hh:146
Scalar maxGasDissolutionFactor(unsigned, unsigned) const
Returns the maximum value of the gas dissolution factor at the current time for a given degree of fre...
Definition: blackoilproblem.hh:67
Scalar rockCompPoroMultiplier(const IntensiveQuantities &, unsigned) const
Returns the porosity multiplier due to water-induced rock compaction.
Definition: blackoilproblem.hh:173
unsigned pvtRegionIndex(const Context &, unsigned, unsigned) const
Returns the index of the relevant region for thermodynmic properties.
Definition: blackoilproblem.hh:92
Scalar rockReferencePressure(unsigned) const
Returns the reference pressure for rock the compressibility of a cell.
Definition: blackoilproblem.hh:154
Simulator & simulator()
Returns Simulator object used by the simulation.
Definition: fvbaseproblem.hh:686
The base class for the problems of ECFV discretizations which deal with a multi-phase flow through a ...
Definition: multiphasebaseproblem.hh:60
Definition: blackoilboundaryratevector.hh:37
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition: propertysystem.hh:235