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#if HAVE_CONFIG_H
27#include "config.h"
28#endif // HAVE_CONFIG_H
29
30#include <opm/core/grid.h>
31#include <opm/core/grid/GridManager.hpp>
32#include <opm/core/grid/GridHelpers.hpp>
33#include <opm/core/utility/linearInterpolation.hpp>
34#include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
35#include <opm/parser/eclipse/Deck/Deck.hpp>
36#include <opm/common/OpmLog/OpmLog.hpp>
37#include <opm/parser/eclipse/EclipseState/Tables/SsfnTable.hpp>
38#include <opm/parser/eclipse/EclipseState/Tables/MiscTable.hpp>
39#include <opm/parser/eclipse/EclipseState/Tables/MsfnTable.hpp>
40#include <opm/parser/eclipse/EclipseState/Tables/SgcwmisTable.hpp>
41#include <opm/parser/eclipse/EclipseState/Tables/SorwmisTable.hpp>
42#include <opm/material/fluidmatrixinteractions/EclEpsScalingPoints.hpp>
43
44namespace Opm {
45
46 class Sof2Table;
47 class SgwfnTable;
48
52 {
53 public:
60 template <class GridT>
61 void diagnosis(const EclipseState& eclState,
62 const Deck& deck,
63 const GridT& grid);
64
65 private:
66 enum FluidSystem {
67 OilWater,
68 OilGas,
69 WaterGas,
70 BlackOil,
71 Solvent
72 };
73
74 FluidSystem fluidSystem_;
75
76 enum SaturationFunctionFamily {
77 FamilyI,
78 FamilyII,
79 NoFamily
80 };
81
82 SaturationFunctionFamily satFamily_;
83
84 std::vector<Opm::EclEpsScalingPointsInfo<double> > unscaledEpsInfo_;
85 std::vector<Opm::EclEpsScalingPointsInfo<double> > scaledEpsInfo_;
86
87
89 void phaseCheck_(const EclipseState& es);
90
92 void satFamilyCheck_(const EclipseState& eclState);
93
95 void tableCheck_(const EclipseState& eclState);
96
98 void unscaledEndPointsCheck_(const Deck& deck,
99 const EclipseState& eclState);
100
101 template <class GridT>
102 void scaledEndPointsCheck_(const Deck& deck,
103 const EclipseState& eclState,
104 const GridT& grid);
105
107 void swofTableCheck_(const Opm::SwofTable& swofTables,
108 const int satnumIdx);
109 void sgofTableCheck_(const Opm::SgofTable& sgofTables,
110 const int satnumIdx);
111 void slgofTableCheck_(const Opm::SlgofTable& slgofTables,
112 const int satnumIdx);
113 void swfnTableCheck_(const Opm::SwfnTable& swfnTables,
114 const int satnumIdx);
115 void sgfnTableCheck_(const Opm::SgfnTable& sgfnTables,
116 const int satnumIdx);
117 void sof3TableCheck_(const Opm::Sof3Table& sof3Tables,
118 const int satnumIdx);
119 void sof2TableCheck_(const Opm::Sof2Table& sof2Tables,
120 const int satnumIdx);
121 void sgwfnTableCheck_(const Opm::SgwfnTable& sgwfnTables,
122 const int satnumIdx);
124 void sgcwmisTableCheck_(const Opm::SgcwmisTable& sgcwmisTables,
125 const int satnumIdx);
126 void sorwmisTableCheck_(const Opm::SorwmisTable& sorwmisTables,
127 const int satnumIdx);
128 void ssfnTableCheck_(const Opm::SsfnTable& ssfnTables,
129 const int satnumIdx);
130 void miscTableCheck_(const Opm::MiscTable& miscTables,
131 const int miscnumIdx);
132 void msfnTableCheck_(const Opm::MsfnTable& msfnTables,
133 const int satnumIdx);
134 };
135
136} //namespace Opm
137
139
140#endif // OPM_RELPERMDIAGNOSTICS_HEADER_INCLUDED
Definition: RelpermDiagnostics.hpp:52
void diagnosis(const EclipseState &eclState, const Deck &deck, const GridT &grid)
Definition: AnisotropicEikonal.hpp:44