My Project
Loading...
Searching...
No Matches
Tables.hpp
1/*
2 Copyright 2019 Equinor.
3 Copyright 2017 Statoil ASA.
4 Copyright 2016 Statoil ASA.
5
6 This file is part of the Open Porous Media project (OPM).
7
8 OPM is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
12
13 OPM is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with OPM. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#ifndef OUTPUT_TABLES_HPP
23#define OUTPUT_TABLES_HPP
24
25#include <tuple>
26#include <vector>
27
28namespace Opm {
29
30 struct DensityTable;
31 class EclipseState;
32 class UnitSystem;
33
34} // namespace Opm
35
36namespace Opm {
37
41 class Tables
42 {
43 public:
49 explicit Tables(const UnitSystem& units);
50
56 void addDensity(const DensityTable& density);
57
62 void addPVTTables(const EclipseState& es);
63
69 void addSatFunc(const EclipseState& es);
70
72 const std::vector<int>& tabdims() const;
73
75 const std::vector<double>& tab() const;
76
77 private:
79 const UnitSystem& units_;
80
82 std::vector<int> tabdims_;
83
85 std::vector<double> data_;
86
95 void addData(const std::size_t offset_index,
96 const std::vector<double>& new_data);
97
108 void addSatFuncGas(const std::tuple<int, int, std::vector<double>>& sgfn);
109
120 void addSatFuncOil(const std::tuple<int, int, std::vector<double>>& sofn);
121
132 void addSatFuncWater(const std::tuple<int, int, std::vector<double>>& swfn);
133
140 void addGasPVTTables(const EclipseState& es);
141
148 void addOilPVTTables(const EclipseState& es);
149
156 void addWaterPVTTables(const EclipseState& es);
157 };
158
159} // namespace Opm
160
161#endif // OUTPUT_TABLES_HPP
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30