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
32
33#include <limits>
34
35namespace Opm {
36
41template<class TypeTag>
43{
44private:
46 using Implementation = GetPropType<TypeTag, Properties::Problem>;
50
51public:
57 explicit BlackOilProblem(Simulator& simulator)
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 rockMechPoroChange(const Context&,
147 unsigned,
148 unsigned) const
149 { return 0.0; }
150
154 Scalar rockMechPoroChange(unsigned) const
155 { return 0.0; }
156
160 template <class Context>
161 Scalar rockBiotComp(const Context&,
162 unsigned,
163 unsigned) const
164 { return 0.0; }
165
169 Scalar rockBiotComp(unsigned) const
170 { return 0.0; }
171
175 template <class Context>
176 Scalar rockBiotTemp(const Context&,
177 unsigned,
178 unsigned) const
179 {
180 return 0.0;
181 }
182
186 Scalar rockBiotTemp(unsigned) const
187 {
188 return 0.0;
189 }
190
194 template <class Context>
195 Scalar lame(const Context&,
196 unsigned,
197 unsigned) const
198 { return 0.0; }
199
203 Scalar lame(unsigned) const
204 { return 0.0; }
205
209 template <class Context>
210 Scalar biotCoeff(const Context&,
211 unsigned,
212 unsigned) const
213 { return 0.0; }
214
218 Scalar biotCoeff(unsigned) const
219 {
220 return 0.0;
221 }
222
226 template <class Context>
227 Scalar biotTemp(const Context&,
228 unsigned,
229 unsigned) const
230 {
231 return 0.0;
232 }
233
237 Scalar biotTemp(unsigned) const
238 {
239 return 0.0;
240 }
241
245 template <class Context>
246 Scalar rockReferencePressure(const Context&,
247 unsigned,
248 unsigned) const
249 { return 1e5; }
250
254 Scalar rockReferencePressure(unsigned) const
255 { return 1e5; }
256
263 Scalar referenceTemperature() const
264 { return 273.15 + 15.56; /* [K] */ }
265
272 template <class Evaluation>
273 Scalar rockCompPoroMultiplier(const IntensiveQuantities&,
274 unsigned) const
275 { return 1.0; }
276
277 template <class LhsEval>
278 LhsEval rockCompTransMultiplier(const IntensiveQuantities&,
279 unsigned) const
280 { return 1.0; }
281
282private:
284 Implementation& asImp_()
285 { return *static_cast<Implementation *>(this); }
286
288 const Implementation& asImp_() const
289 { return *static_cast<const Implementation *>(this); }
290};
291
292} // namespace Opm
293
294#endif
Base class for all problems which use the black-oil model.
Definition: blackoilproblem.hh:43
Scalar biotCoeff(unsigned) const
Returns Biot coefficient of a cell.
Definition: blackoilproblem.hh:218
Scalar rockCompressibility(unsigned) const
Returns the compressibility of the porous medium of a cell.
Definition: blackoilproblem.hh:139
Scalar lame(unsigned) const
Returns Lame's first parameter of a cell.
Definition: blackoilproblem.hh:203
Scalar biotCoeff(const Context &, unsigned, unsigned) const
Returns Biot coefficient of a cell.
Definition: blackoilproblem.hh:210
Scalar biotTemp(const Context &, unsigned, unsigned) const
Returns Biot temperature coefficient of a cell.
Definition: blackoilproblem.hh:227
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:278
Scalar rockBiotComp(const Context &, unsigned, unsigned) const
Returns the additional compressibility of a cell due to poroelasticity.
Definition: blackoilproblem.hh:161
Scalar lame(const Context &, unsigned, unsigned) const
Returns Lame's first parameter of a cell.
Definition: blackoilproblem.hh:195
unsigned miscnumRegionIndex(const Context &, unsigned, unsigned) const
Returns the index of the relevant region for solvent mixing functions.
Definition: blackoilproblem.hh:113
Scalar rockBiotTemp(const Context &, unsigned, unsigned) const
Returns the additional compressibility of a cell due to thermoelasticity.
Definition: blackoilproblem.hh:176
BlackOilProblem(Simulator &simulator)
Definition: blackoilproblem.hh:57
Scalar rockBiotComp(unsigned) const
Returns the additional compressibility of a cell due to poroelasticity.
Definition: blackoilproblem.hh:169
Scalar referenceTemperature() const
Returns the reference temperature.
Definition: blackoilproblem.hh:263
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 rockMechPoroChange(unsigned) const
Returns the porosity (i.e., pore volume) change due to geomechanics.
Definition: blackoilproblem.hh:154
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:246
Scalar biotTemp(unsigned) const
Returns Biot temperature coefficient of a cell.
Definition: blackoilproblem.hh:237
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:273
unsigned pvtRegionIndex(const Context &, unsigned, unsigned) const
Returns the index of the relevant region for thermodynmic properties.
Definition: blackoilproblem.hh:92
Scalar rockMechPoroChange(const Context &, unsigned, unsigned) const
Returns the porosity (i.e., pore volume) change due to geomechanics.
Definition: blackoilproblem.hh:146
Scalar rockReferencePressure(unsigned) const
Returns the reference pressure for rock the compressibility of a cell.
Definition: blackoilproblem.hh:254
Scalar rockBiotTemp(unsigned) const
Returns the additional compressibility of a cell due to thermoelasticity.
Definition: blackoilproblem.hh:186
Simulator & simulator()
Returns Simulator object used by the simulation.
Definition: fvbaseproblem.hh:708
The base class for the problems of ECFV discretizations which deal with a multi-phase flow through a ...
Definition: multiphasebaseproblem.hh:65
Definition: blackoilbioeffectsmodules.hh:45
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:233