opm-simulators
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 
35 namespace Opm {
36 
41 template<class TypeTag>
42 class BlackOilProblem : public MultiPhaseBaseProblem<TypeTag>
43 {
44 private:
46  using Implementation = GetPropType<TypeTag, Properties::Problem>;
50 
51 public:
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 lame(const Context&,
177  unsigned,
178  unsigned) const
179  { return 0.0; }
180 
184  Scalar lame(unsigned) const
185  { return 0.0; }
186 
190  template <class Context>
191  Scalar biotCoeff(const Context&,
192  unsigned,
193  unsigned) const
194  { return 0.0; }
195 
199  Scalar biotCoeff(unsigned) const
200  { return 0.0; }
201 
205  template <class Context>
206  Scalar rockReferencePressure(const Context&,
207  unsigned,
208  unsigned) const
209  { return 1e5; }
210 
214  Scalar rockReferencePressure(unsigned) const
215  { return 1e5; }
216 
223  Scalar referenceTemperature() const
224  { return 273.15 + 15.56; /* [K] */ }
225 
232  template <class Evaluation>
233  Scalar rockCompPoroMultiplier(const IntensiveQuantities&,
234  unsigned) const
235  { return 1.0; }
236 
237  template <class LhsEval>
238  LhsEval rockCompTransMultiplier(const IntensiveQuantities&,
239  unsigned) const
240  { return 1.0; }
241 
242 private:
244  Implementation& asImp_()
245  { return *static_cast<Implementation *>(this); }
246 
248  const Implementation& asImp_() const
249  { return *static_cast<const Implementation *>(this); }
250 };
251 
252 } // namespace Opm
253 
254 #endif
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
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
Scalar lame(const Context &, unsigned, unsigned) const
Returns Lame&#39;s first parameter of a cell.
Definition: blackoilproblem.hh:176
unsigned miscnumRegionIndex(const Context &, unsigned, unsigned) const
Returns the index of the relevant region for solvent mixing functions.
Definition: blackoilproblem.hh:113
The base class for the problems of ECFV discretizations which deal with a multi-phase flow through a ...
Definition: multiphasebaseproblem.hh:62
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
Scalar rockMechPoroChange(const Context &, unsigned, unsigned) const
Returns the porosity (i.e., pore volume) change due to geomechanics.
Definition: blackoilproblem.hh:146
Scalar biotCoeff(unsigned) const
Returns Biot coefficient of a cell.
Definition: blackoilproblem.hh:199
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: blackoilbioeffectsmodules.hh:45
Scalar rockMechPoroChange(unsigned) const
Returns the porosity (i.e., pore volume) change due to geomechanics.
Definition: blackoilproblem.hh:154
Scalar rockCompPoroMultiplier(const IntensiveQuantities &, unsigned) const
Returns the porosity multiplier due to water-induced rock compaction.
Definition: blackoilproblem.hh:233
unsigned satnumRegionIndex(const Context &, unsigned, unsigned) const
Returns the index of the relevant region for saturation functions.
Definition: blackoilproblem.hh:101
unsigned pvtRegionIndex(const Context &, unsigned, unsigned) const
Returns the index of the relevant region for thermodynmic properties.
Definition: blackoilproblem.hh:92
Scalar referenceTemperature() const
Returns the reference temperature.
Definition: blackoilproblem.hh:223
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
unsigned plmixnumRegionIndex(const Context &, unsigned, unsigned) const
Returns the index of the relevant region for polymer mixing functions.
Definition: blackoilproblem.hh:122
Scalar rockBiotComp(const Context &, unsigned, unsigned) const
Returns the additional compressibility of a cell due to poroelasticity.
Definition: blackoilproblem.hh:161
Scalar rockReferencePressure(unsigned) const
Returns the reference pressure for rock the compressibility of a cell.
Definition: blackoilproblem.hh:214
Scalar lame(unsigned) const
Returns Lame&#39;s first parameter of a cell.
Definition: blackoilproblem.hh:184
Scalar rockCompressibility(unsigned) const
Returns the compressibility of the porous medium of a cell.
Definition: blackoilproblem.hh:139
BlackOilProblem(Simulator &simulator)
Definition: blackoilproblem.hh:57
Scalar biotCoeff(const Context &, unsigned, unsigned) const
Returns Biot coefficient of a cell.
Definition: blackoilproblem.hh:191
Simulator & simulator()
Returns Simulator object used by the simulation.
Definition: fvbaseproblem.hh:694
Base class for all problems which use the black-oil model.
Definition: blackoilproblem.hh:42
The base class for the problems of ECFV discretizations which deal with a multi-phase flow through a ...
Scalar rockReferencePressure(const Context &, unsigned, unsigned) const
Returns the reference pressure for rock the compressibility of a cell.
Definition: blackoilproblem.hh:206
Scalar rockCompressibility(const Context &, unsigned, unsigned) const
Returns the compressibility of the porous medium of a cell.
Definition: blackoilproblem.hh:131
Scalar rockBiotComp(unsigned) const
Returns the additional compressibility of a cell due to poroelasticity.
Definition: blackoilproblem.hh:169