FlatTable.hpp
Go to the documentation of this file.
1#ifndef OPM_FLAT_TABLE_HPP
2#define OPM_FLAT_TABLE_HPP
3
4namespace Opm {
5
6class DeckKeyword;
7
8template< typename T >
9struct FlatTable : public std::vector< T > {
10 FlatTable() = default;
11 explicit FlatTable( const DeckKeyword& );
12 explicit FlatTable(const std::vector<T>& data) :
13 std::vector<T>(data)
14 {}
15
16 template<class Serializer>
17 void serializeOp(Serializer& serializer)
18 {
19 serializer.vector(*this);
20 }
21};
22
24 static constexpr std::size_t size = 3;
25
26 double oil;
27 double water;
28 double gas;
29
30 bool operator==(const DENSITYRecord& data) const {
31 return oil == data.oil &&
32 water == data.water &&
33 gas == data.gas;
34 }
35
36 template<class Serializer>
37 void serializeOp(Serializer& serializer)
38 {
39 serializer(oil);
40 serializer(water);
41 serializer(gas);
42 }
43};
44
45struct DensityTable : public FlatTable< DENSITYRecord > {
47
49 {
50 return DensityTable({{1.0, 2.0, 3.0}});
51 }
52};
53
54struct PVTWRecord {
55 static constexpr std::size_t size = 5;
56
60 double viscosity;
62
63 bool operator==(const PVTWRecord& data) const {
64 return reference_pressure == data.reference_pressure &&
65 volume_factor == data.volume_factor &&
66 compressibility == data.compressibility &&
67 viscosity == data.viscosity &&
68 viscosibility == data.viscosibility;
69 }
70
71 template<class Serializer>
72 void serializeOp(Serializer& serializer)
73 {
74 serializer(reference_pressure);
75 serializer(volume_factor);
76 serializer(compressibility);
77 serializer(viscosity);
78 serializer(viscosibility);
79 }
80};
81
82struct PvtwTable : public FlatTable< PVTWRecord > {
84
86 {
87 return PvtwTable({{1.0, 2.0, 3.0, 4.0, 5.0}});
88 }
89};
90
91struct ROCKRecord {
92 static constexpr std::size_t size = 2;
93
96
97 bool operator==(const ROCKRecord& data) const {
98 return reference_pressure == data.reference_pressure &&
99 compressibility == data.compressibility;
100 }
101
102 template<class Serializer>
103 void serializeOp(Serializer& serializer)
104 {
105 serializer(reference_pressure);
106 serializer(compressibility);
107 }
108};
109
110struct RockTable : public FlatTable< ROCKRecord > {
112
114 {
115 return RockTable({{1.0, 2.0}});
116 }
117};
118
120 static constexpr std::size_t size = 5;
121
125 double viscosity;
127
128 bool operator==(const PVCDORecord& data) const {
129 return reference_pressure == data.reference_pressure &&
130 volume_factor == data.volume_factor &&
131 compressibility == data.compressibility &&
132 viscosity == data.viscosity &&
133 viscosibility == data.viscosibility;
134 }
135
136 template<class Serializer>
137 void serializeOp(Serializer& serializer)
138 {
139 serializer(reference_pressure);
140 serializer(volume_factor);
141 serializer(compressibility);
142 serializer(viscosity);
143 serializer(viscosibility);
144 }
145};
146
147struct PvcdoTable : public FlatTable< PVCDORecord > {
149
151 {
152 return PvcdoTable({{1.0, 2.0, 3.0, 4.0, 5.0}});
153 }
154};
155
157 static constexpr std::size_t size = 1;
158
160
161 bool operator==(const PlmixparRecord& data) const {
162 return todd_langstaff == data.todd_langstaff;
163 }
164
165 template<class Serializer>
166 void serializeOp(Serializer& serializer)
167 {
168 serializer(todd_langstaff);
169 }
170};
171
172struct PlmixparTable : public FlatTable< PlmixparRecord> {
174
176 {
177 return PlmixparTable({PlmixparRecord{1.0}});
178 }
179};
180
182 static constexpr std::size_t size = 4;
183
184 double k_mh;
185 double a_mh;
186 double gamma;
187 double kappa;
188
189 bool operator==(const PlyvmhRecord& data) const {
190 return k_mh == data.k_mh &&
191 a_mh == data.a_mh &&
192 gamma == data.gamma &&
193 kappa == data.kappa;
194 }
195
196 template<class Serializer>
197 void serializeOp(Serializer& serializer)
198 {
199 serializer(k_mh);
200 serializer(a_mh);
201 serializer(gamma);
202 serializer(kappa);
203 }
204};
205
206struct PlyvmhTable : public FlatTable<PlyvmhRecord> {
208
210 {
211 return PlyvmhTable({{1.0, 2.0, 3.0, 4.0}});
212 }
213};
214
216 static constexpr std::size_t size = 1;
217
218 double rate;
219
220 bool operator==(const ShrateRecord& data) const {
221 return rate == data.rate;
222 }
223
224 template<class Serializer>
225 void serializeOp(Serializer& serializer)
226 {
227 serializer(rate);
228 }
229};
230
231struct ShrateTable : public FlatTable<ShrateRecord> {
233
235 {
236 return ShrateTable({ShrateRecord{1.0}});
237 }
238};
239
241 static constexpr std::size_t size = 1;
242
243 double eta;
244
245 bool operator==(const Stone1exRecord& data) const {
246 return eta == data.eta;
247 }
248
249 template<class Serializer>
250 void serializeOp(Serializer& serializer)
251 {
252 serializer(eta);
253 }
254};
255
256struct Stone1exTable : public FlatTable<Stone1exRecord> {
258
260 {
261 return Stone1exTable({Stone1exRecord{1.0}});
262 }
263};
264
266 static constexpr std::size_t size = 2;
267
268 double viscosity;
269 double density;
270
271 bool operator==(const TlmixparRecord& data) const {
272 return viscosity == data.viscosity &&
273 density == data.density;
274 }
275
276 template<class Serializer>
277 void serializeOp(Serializer& serializer)
278 {
279 serializer(viscosity);
280 serializer(density);
281 }
282};
283
284struct TlmixparTable : public FlatTable< TlmixparRecord> {
286
288 {
289 return TlmixparTable({{1.0, 2.0}});
290 }
291};
292
294 static constexpr std::size_t size = 2;
295
298
299 bool operator==(const VISCREFRecord& data) const {
300 return reference_pressure == data.reference_pressure &&
301 reference_rs == data.reference_rs;
302 }
303
304 template<class Serializer>
305 void serializeOp(Serializer& serializer)
306 {
307 serializer(reference_pressure);
308 serializer(reference_rs);
309 }
310};
311
312struct ViscrefTable : public FlatTable< VISCREFRecord > {
314
316 {
317 return ViscrefTable({{1.0, 2.0}});
318 }
319};
320
322 static constexpr std::size_t size = 3;
323
327
328 bool operator==(const WATDENTRecord& data) const {
329 return reference_temperature == data.reference_temperature &&
330 first_coefficient == data.first_coefficient &&
331 second_coefficient == data.second_coefficient;
332 }
333
334 template<class Serializer>
335 void serializeOp(Serializer& serializer)
336 {
337 serializer(reference_temperature);
338 serializer(first_coefficient);
339 serializer(second_coefficient);
340 }
341};
342
343struct WatdentTable : public FlatTable< WATDENTRecord > {
345
347 {
348 return WatdentTable({{1.0, 2.0, 3.0}});
349 }
350};
351
352}
353
354#endif //OPM_FLAT_TABLE_HPP
Definition: DeckKeyword.hpp:38
Definition: Serializer.hpp:38
Definition: A.hpp:4
static std::string data()
Definition: exprtk.hpp:40022
Definition: FlatTable.hpp:23
static constexpr std::size_t size
Definition: FlatTable.hpp:24
double oil
Definition: FlatTable.hpp:26
double gas
Definition: FlatTable.hpp:28
bool operator==(const DENSITYRecord &data) const
Definition: FlatTable.hpp:30
double water
Definition: FlatTable.hpp:27
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:37
Definition: FlatTable.hpp:45
static DensityTable serializeObject()
Definition: FlatTable.hpp:48
Definition: FlatTable.hpp:9
FlatTable(const std::vector< T > &data)
Definition: FlatTable.hpp:12
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:17
FlatTable(const DeckKeyword &)
FlatTable()=default
Definition: FlatTable.hpp:119
double compressibility
Definition: FlatTable.hpp:124
bool operator==(const PVCDORecord &data) const
Definition: FlatTable.hpp:128
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:137
static constexpr std::size_t size
Definition: FlatTable.hpp:120
double reference_pressure
Definition: FlatTable.hpp:122
double viscosity
Definition: FlatTable.hpp:125
double viscosibility
Definition: FlatTable.hpp:126
double volume_factor
Definition: FlatTable.hpp:123
Definition: FlatTable.hpp:54
double volume_factor
Definition: FlatTable.hpp:58
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:72
bool operator==(const PVTWRecord &data) const
Definition: FlatTable.hpp:63
double viscosity
Definition: FlatTable.hpp:60
double viscosibility
Definition: FlatTable.hpp:61
static constexpr std::size_t size
Definition: FlatTable.hpp:55
double compressibility
Definition: FlatTable.hpp:59
double reference_pressure
Definition: FlatTable.hpp:57
Definition: FlatTable.hpp:156
double todd_langstaff
Definition: FlatTable.hpp:159
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:166
bool operator==(const PlmixparRecord &data) const
Definition: FlatTable.hpp:161
static constexpr std::size_t size
Definition: FlatTable.hpp:157
Definition: FlatTable.hpp:172
static PlmixparTable serializeObject()
Definition: FlatTable.hpp:175
Definition: FlatTable.hpp:181
double kappa
Definition: FlatTable.hpp:187
double k_mh
Definition: FlatTable.hpp:184
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:197
bool operator==(const PlyvmhRecord &data) const
Definition: FlatTable.hpp:189
double a_mh
Definition: FlatTable.hpp:185
static constexpr std::size_t size
Definition: FlatTable.hpp:182
double gamma
Definition: FlatTable.hpp:186
Definition: FlatTable.hpp:206
static PlyvmhTable serializeObject()
Definition: FlatTable.hpp:209
Definition: FlatTable.hpp:147
static PvcdoTable serializeObject()
Definition: FlatTable.hpp:150
Definition: FlatTable.hpp:82
static PvtwTable serializeObject()
Definition: FlatTable.hpp:85
Definition: FlatTable.hpp:91
double compressibility
Definition: FlatTable.hpp:95
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:103
static constexpr std::size_t size
Definition: FlatTable.hpp:92
bool operator==(const ROCKRecord &data) const
Definition: FlatTable.hpp:97
double reference_pressure
Definition: FlatTable.hpp:94
Definition: FlatTable.hpp:110
static RockTable serializeObject()
Definition: FlatTable.hpp:113
Definition: FlatTable.hpp:215
double rate
Definition: FlatTable.hpp:218
bool operator==(const ShrateRecord &data) const
Definition: FlatTable.hpp:220
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:225
static constexpr std::size_t size
Definition: FlatTable.hpp:216
Definition: FlatTable.hpp:231
static ShrateTable serializeObject()
Definition: FlatTable.hpp:234
Definition: FlatTable.hpp:240
bool operator==(const Stone1exRecord &data) const
Definition: FlatTable.hpp:245
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:250
static constexpr std::size_t size
Definition: FlatTable.hpp:241
double eta
Definition: FlatTable.hpp:243
Definition: FlatTable.hpp:256
static Stone1exTable serializeObject()
Definition: FlatTable.hpp:259
Definition: FlatTable.hpp:265
double density
Definition: FlatTable.hpp:269
bool operator==(const TlmixparRecord &data) const
Definition: FlatTable.hpp:271
static constexpr std::size_t size
Definition: FlatTable.hpp:266
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:277
double viscosity
Definition: FlatTable.hpp:268
Definition: FlatTable.hpp:284
static TlmixparTable serializeObject()
Definition: FlatTable.hpp:287
Definition: FlatTable.hpp:293
double reference_rs
Definition: FlatTable.hpp:297
double reference_pressure
Definition: FlatTable.hpp:296
bool operator==(const VISCREFRecord &data) const
Definition: FlatTable.hpp:299
static constexpr std::size_t size
Definition: FlatTable.hpp:294
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:305
Definition: FlatTable.hpp:312
static ViscrefTable serializeObject()
Definition: FlatTable.hpp:315
Definition: FlatTable.hpp:321
bool operator==(const WATDENTRecord &data) const
Definition: FlatTable.hpp:328
static constexpr std::size_t size
Definition: FlatTable.hpp:322
void serializeOp(Serializer &serializer)
Definition: FlatTable.hpp:335
double first_coefficient
Definition: FlatTable.hpp:325
double second_coefficient
Definition: FlatTable.hpp:326
double reference_temperature
Definition: FlatTable.hpp:324
Definition: FlatTable.hpp:343
static WatdentTable serializeObject()
Definition: FlatTable.hpp:346