opm-common
Toggle main menu visibility
Loading...
Searching...
No Matches
SimpleTable.hpp
1
/*
2
Copyright (C) 2013 by Andreas Lauser
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
#ifndef OPM_PARSER_SIMPLE_TABLE_HPP
20
#define OPM_PARSER_SIMPLE_TABLE_HPP
21
22
#include <opm/input/eclipse/EclipseState/Tables/TableColumn.hpp>
23
#include <opm/input/eclipse/EclipseState/Tables/TableSchema.hpp>
24
#include <opm/input/eclipse/EclipseState/Util/OrderedMap.hpp>
25
26
#include <map>
27
#include <memory>
28
#include <string>
29
#include <vector>
30
31
namespace
Opm
{
32
33
class
DeckItem
;
34
35
class
SimpleTable {
36
37
public
:
38
SimpleTable() =
default
;
39
SimpleTable(
TableSchema
,
const
std::string& tableName,
const
DeckItem
& deckItem,
const
int
tableID);
40
explicit
SimpleTable(
TableSchema
);
41
42
virtual
~SimpleTable() =
default
;
43
44
static
SimpleTable serializationTestObject();
45
46
void
addColumns();
52
void
init
(
const
std::string& tableName,
53
const
DeckItem
& deckItem,
54
const
int
tableID,
55
double
scaling_factor = 0.0);
56
size_t
numColumns()
const
;
57
size_t
numRows()
const
;
58
void
addRow(
const
std::vector<double>& row,
const
std::string& tableName);
59
const
TableColumn
& getColumn(
const
std::string &name)
const
;
60
const
TableColumn
& getColumn(
size_t
colIdx)
const
;
61
bool
hasColumn(
const
std::string& name)
const
;
62
63
TableColumn
& getColumn(
const
std::string &name);
64
TableColumn
& getColumn(
size_t
colIdx);
65
66
double
get(
const
std::string& column ,
size_t
row)
const
;
67
double
get(
size_t
column ,
size_t
row)
const
;
74
double
evaluate
(
const
std::string& columnName,
double
xPos)
const
;
75
77
void
assertJFuncPressure
(
const
bool
jf)
const
;
78
79
bool
operator==(
const
SimpleTable& data)
const
;
80
81
template
<
class
Serializer>
82
void
serializeOp(
Serializer
& serializer)
83
{
84
serializer(m_schema);
85
serializer(m_columns);
86
serializer(m_jfunc);
87
}
88
89
protected
:
90
TableSchema
m_schema;
91
OrderedMap<TableColumn>
m_columns;
92
bool
m_jfunc =
false
;
93
};
94
}
95
96
#endif
Opm::DeckItem
Definition
DeckItem.hpp:35
Opm::OrderedMap
A map with iteration in the order of insertion.
Definition
OrderedMap.hpp:119
Opm::Serializer
Class for (de-)serializing.
Definition
Serializer.hpp:94
Opm::SimpleTable::assertJFuncPressure
void assertJFuncPressure(const bool jf) const
throws std::invalid_argument if jf != m_jfunc
Definition
SimpleTable.cpp:208
Opm::SimpleTable::init
void init(const std::string &tableName, const DeckItem &deckItem, const int tableID, double scaling_factor=0.0)
Initialize deck item.
Definition
SimpleTable.cpp:103
Opm::SimpleTable::evaluate
double evaluate(const std::string &columnName, double xPos) const
Evaluate a column of the table at a given position.
Definition
SimpleTable.cpp:201
Opm::TableColumn
Definition
TableColumn.hpp:32
Opm::TableSchema
Definition
TableSchema.hpp:32
Opm
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition
Exceptions.hpp:30
opm
input
eclipse
EclipseState
Tables
SimpleTable.hpp
Generated by
1.17.0