Tables.hpp
1 /*
2  Copyright 2016 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 #ifndef OUTPUT_TABLES_HPP
21 #define OUTPUT_TABLES_HPP
22 
23 #include <vector>
24 
25 #include <ert/ecl/FortIO.hpp>
26 #include <ert/ecl/EclKW.hpp>
27 
28 #include <opm/parser/eclipse/EclipseState/Tables/PvtoTable.hpp>
29 #include <opm/parser/eclipse/EclipseState/Tables/PvtgTable.hpp>
30 #include <opm/parser/eclipse/EclipseState/Tables/FlatTable.hpp>
31 
32 
33 namespace Opm {
34  class UnitSystem;
35 
36  class Tables {
37  public:
38  explicit Tables( const UnitSystem& units_);
39  void fwrite( ERT::FortIO& fortio ) const;
40  void addPVTO( const std::vector<PvtoTable>& pvtoTables);
41  void addPVTG( const std::vector<PvtgTable>& pvtgTables);
42  void addPVTW( const PvtwTable& pvtwTable);
43  void addDensity( const DensityTable& density);
44 
45  private:
46  void addData( size_t offset_index , const std::vector<double>& new_data);
47 
48  const UnitSystem& units;
49  ERT::EclKW<int> tabdims;
50  std::vector<double> data;
51  };
52 }
53 
54 
55 #endif
Definition: Tables.hpp:36
Definition: Cells.hpp:28