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 <vector>
26
27namespace Opm {
28 struct DensityTable;
29 class EclipseState;
30 class UnitSystem;
31
32 class Tables {
33 public:
34 explicit Tables( const UnitSystem& units);
35
36 void addDensity(const DensityTable& density);
37
45 void addPVTTables(const EclipseState& es);
46
52 void addSatFunc(const EclipseState& es);
53
55 const std::vector<int>& tabdims() const;
56
58 const std::vector<double>& tab() const;
59
60 private:
62 const UnitSystem& units;
63
65 std::vector<int> m_tabdims;
66
68 std::vector<double> data;
69
70 void addData(const std::size_t offset_index,
71 const std::vector<double>& new_data);
72
85 void addSatFunc_FamilyOne(const EclipseState& es,
86 const bool gas,
87 const bool oil,
88 const bool wat);
89
102 void addSatFunc_FamilyTwo(const EclipseState& es,
103 const bool gas,
104 const bool oil,
105 const bool wat);
106
114 void addSatFunc_FamilyThree(const EclipseState& es);
115
122 void addGasPVTTables(const EclipseState& es);
123
130 void addOilPVTTables(const EclipseState& es);
131
138 void addWaterPVTTables(const EclipseState& es);
139 };
140}
141
142#endif // OUTPUT_TABLES_HPP
Definition EclipseState.hpp:63
Definition Tables.hpp:32
const std::vector< double > & tab() const
Acquire read-only reference to internal TAB vector.
Definition Tables.cpp:2651
const std::vector< int > & tabdims() const
Acquire read-only reference to internal TABDIMS vector.
Definition Tables.cpp:2646
void addSatFunc(const EclipseState &es)
Add normalised saturation function tables to INIT file's TAB vector.
Definition Tables.cpp:2603
void addPVTTables(const EclipseState &es)
Add normalised PVT function tables to INIT file's TAB vector.
Definition Tables.cpp:2594
Definition UnitSystem.hpp:34
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
Definition FlatTable.hpp:124