opm-common
WriteRestartHelpers.hpp
1 /*
2  Copyright (c) 2018 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 OPM_WRITE_RESTART_HELPERS_HPP
21 #define OPM_WRITE_RESTART_HELPERS_HPP
22 
23 #include <cstddef>
24 #include <vector>
25 
26 // Forward declarations
27 
28 namespace Opm {
29 
30  class Runspec;
31  class EclipseGrid;
32  class EclipseState;
33  class Schedule;
34  class ScheduleState;
35  class Well;
36  class UnitSystem;
37  class UDQActive;
38  class Actdims;
39 
40 } // Opm
41 
42 namespace Opm::RestartIO::Helpers {
43 
44  std::vector<double>
45  createDoubHead(const EclipseState& es,
46  const Schedule& sched,
47  const std::size_t sim_step,
48  const std::size_t report_step,
49  const double simTime,
50  const double nextTimeStep);
51 
52  std::vector<int>
53  createInteHead(const EclipseState& es,
54  const EclipseGrid& grid,
55  const Schedule& sched,
56  const double simTime,
57  const int num_solver_steps,
58  const int report_step,
59  const int lookup_step);
60 
61  std::vector<int>
62  createLgrHeadi(const EclipseState& es,
63  const int lgr_index);
64 
65  std::vector<bool>
66  createLgrHeadq(const EclipseState& es);
67 
68  std::vector<double>
69  createLgrHeadd();
70 
76  std::vector<bool>
77  createLogiHead(const EclipseState& es);
78 
86  std::vector<bool>
87  createLogiHead(const EclipseState& es, const ScheduleState& sched);
88 
89  std::size_t
90  entriesPerSACT();
91 
92  std::size_t
93  entriesPerIACT();
94 
95  std::size_t
96  entriesPerZACT();
97 
98  std::size_t
99  entriesPerZACN(const Opm::Actdims& actdims);
100 
101  std::size_t
102  entriesPerIACN(const Opm::Actdims& actdims);
103 
104  std::size_t
105  entriesPerSACN(const Opm::Actdims& actdims);
106 
107  std::vector<int>
108  createActionRSTDims(const Schedule& sched,
109  const std::size_t simStep);
110 
111 } // Opm::RestartIO::Helpers
112 
113 #endif // OPM_WRITE_RESTART_HELPERS_HPP
Definition: Actdims.hpp:30
Definition: AggregateActionxData.hpp:41
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30