My Project
PvtoTable.hpp
1 /*
2  Copyright (C) 2014 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_PVTO_TABLE_HPP
20 #define OPM_PARSER_PVTO_TABLE_HPP
21 
22 #include <opm/parser/eclipse/EclipseState/Tables/PvtxTable.hpp>
23 
24 #include <array>
25 #include <cstddef>
26 #include <vector>
27 
28 namespace Opm {
29 
30  class DeckKeyword;
31 
32  class PvtoTable : public PvtxTable {
33  public:
34  struct FlippedFVF {
35  std::size_t i;
36  std::array<double, std::size_t{2}> Rs;
37  std::array<double, std::size_t{2}> Bo;
38  };
39 
40  PvtoTable() = default;
41  PvtoTable(const DeckKeyword& keyword, size_t tableIdx);
42 
43  static PvtoTable serializeObject();
44 
45  bool operator==(const PvtoTable& data) const;
46 
47  std::vector<FlippedFVF> nonMonotonicSaturatedFVF() const;
48  };
49 }
50 
51 #endif
Definition: DeckKeyword.hpp:36
Definition: PvtoTable.hpp:32
Definition: PvtxTable.hpp:113
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29
Definition: PvtoTable.hpp:34