/* Copyright (C) 2018 Statoil ASA This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OPM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OPM. If not, see . */ #ifndef OPM_PARSER_POLY_INJ_TABLE_HPP #define OPM_PARSER_POLY_INJ_TABLE_HPP /* This class is introduced for the following keywords related to polymer injectivity study. * PLYMWINJ, SKPRWAT, SKPRPOLY . * These keywords share very similar structure with small difference. * * KEYWORD * 1 / --table number * 0 20 30 / -- water throughputs * 0 0.1 0.2 0.3 / -- water velocities * -- the rest is the table data, * -- each row corresponds to one value in throughputs * -- each column corresponds to one value in water velocities * 20 19 18 17 / * 20 18 17 16 / * 20 17 16 15 / */ #include namespace Opm { class PolyInjTable { public: int getTableNumber() const; const std::vector& getThroughputs() const; const std::vector& getVelocities() const; const std::vector>& getTableData() const; protected: std::vector m_throughputs; std::vector m_velocities; // TODO: maybe not needed, since this is also stored in the std::map int m_table_number; // each vector corresponds to the values corresponds to one value related to one x sampling point // as a result, the number of the vector should be equal to be the size of m_x_points, // the size of each vector should be equal to the size of m_y_points std::vector > m_data; }; } #endif // OPM_PARSER_POLY_INJ_TABLE_HPP