TableIndex.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
21#ifndef OPM_TABLE_INDEX_HPP
22#define OPM_TABLE_INDEX_HPP
23
24#include <cstddef>
25
26/*
27 Small class used to simplify lookup in tables based on linear
28 interpolation; first binear search in an ordered column is used to
29 instantiate a TableIndex object, and then subsequently that
30 TableIndex instance is used to evaluate the corresponding value over
31 another column.
32*/
33
34namespace Opm {
35
36 class TableIndex {
37 public:
38 TableIndex( size_t index1 , double weight1);
40 size_t getIndex1( ) const;
41 size_t getIndex2( ) const;
42 double getWeight1( ) const;
43 double getWeight2( ) const;
44 private:
45 size_t m_index1;
46 double m_weight1;
47 };
48}
49
50
51#endif
Definition: TableIndex.hpp:36
TableIndex(const TableIndex &tableIndex)
double getWeight1() const
size_t getIndex2() const
size_t getIndex1() const
TableIndex(size_t index1, double weight1)
double getWeight2() const
Definition: A.hpp:4
int tableIndex(const std::vector< double > &table, double x)
Definition: linearInterpolation.hpp:31