RelpermDiagnostics.hpp
Go to the documentation of this file.
1/*
2 Copyright 2015 Statoil ASA.
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 3 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
20#ifndef OPM_RELPERMDIAGNOSTICS_HEADER_INCLUDED
21#define OPM_RELPERMDIAGNOSTICS_HEADER_INCLUDED
22
23#include <vector>
24#include <utility>
25
26#include <opm/material/fluidmatrixinteractions/EclEpsScalingPoints.hpp>
27
28namespace Opm {
29
30 class EclipseState;
31 class MiscTable;
32 class MsfnTable;
33 class SgcwmisTable;
34 class SgfnTable;
35 class SgofTable;
36 class SgwfnTable;
37 class SlgofTable;
38 class Sof2Table;
39 class Sof3Table;
40 class SorwmisTable;
41 class SsfnTable;
42 class SwfnTable;
43 class SwofTable;
44 class GsfTable;
45 class WsfTable;
46
50 {
51 public:
57 template <class CartesianIndexMapper>
58 void diagnosis(const EclipseState& eclState,
59 const CartesianIndexMapper& cartesianIndexMapper);
60
61 private:
62 enum FluidSystem {
63 OilWater,
64 OilGas,
65 WaterGas,
66 BlackOil,
67 Solvent
68 };
69
70 FluidSystem fluidSystem_;
71
72 enum SaturationFunctionFamily {
73 FamilyI,
74 FamilyII,
75 FamilyIII,
76 NoFamily
77 };
78
79 SaturationFunctionFamily satFamily_;
80
81 std::vector<EclEpsScalingPointsInfo<double> > unscaledEpsInfo_;
82 std::vector<EclEpsScalingPointsInfo<double> > scaledEpsInfo_;
83
84
87 bool phaseCheck_(const EclipseState& es);
88
90 void satFamilyCheck_(const EclipseState& eclState);
91
93 void tableCheck_(const EclipseState& eclState);
94
96 void unscaledEndPointsCheck_(const EclipseState& eclState);
97
98 template <class CartesianIndexMapper>
99 void scaledEndPointsCheck_(const EclipseState& eclState,
100 const CartesianIndexMapper& cartesianIndexMapper);
101
103 void swofTableCheck_(const SwofTable& swofTables,
104 const int satnumIdx);
105 void sgofTableCheck_(const SgofTable& sgofTables,
106 const int satnumIdx);
107 void slgofTableCheck_(const SlgofTable& slgofTables,
108 const int satnumIdx);
109 void swfnTableCheck_(const SwfnTable& swfnTables,
110 const int satnumIdx);
111 void sgfnTableCheck_(const SgfnTable& sgfnTables,
112 const int satnumIdx);
113 void wsfTableCheck_(const WsfTable& wsfTables,
114 const int satnumIdx);
115 void gsfTableCheck_(const GsfTable& gsfTables,
116 const int satnumIdx);
117 void sof3TableCheck_(const Sof3Table& sof3Tables,
118 const int satnumIdx);
119 void sof2TableCheck_(const Sof2Table& sof2Tables,
120 const int satnumIdx);
121 void sgwfnTableCheck_(const SgwfnTable& sgwfnTables,
122 const int satnumIdx);
124 void sgcwmisTableCheck_(const SgcwmisTable& sgcwmisTables,
125 const int satnumIdx);
126 void sorwmisTableCheck_(const SorwmisTable& sorwmisTables,
127 const int satnumIdx);
128 void ssfnTableCheck_(const SsfnTable& ssfnTables,
129 const int satnumIdx);
130 void miscTableCheck_(const MiscTable& miscTables,
131 const int miscnumIdx);
132 void msfnTableCheck_(const MsfnTable& msfnTables,
133 const int satnumIdx);
134 };
135
136} //namespace Opm
137
138#endif // OPM_RELPERMDIAGNOSTICS_HEADER_INCLUDED
Definition: RelpermDiagnostics.hpp:50
void diagnosis(const EclipseState &eclState, const CartesianIndexMapper &cartesianIndexMapper)
Definition: BlackoilPhases.hpp:27