My Project
Loading...
Searching...
No Matches
header.hpp
1/*
2 Copyright 2020 Equinor 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 it under the
7 terms of the GNU General Public License as published by the Free Software
8 Foundation, either version 3 of the License, or (at your option) any later
9 version.
10
11 OPM is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14 details.
15
16 You should have received a copy of the GNU General Public License along
17 with OPM. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#ifndef RST_HEADER
21#define RST_HEADER
22
23#include <opm/input/eclipse/EclipseState/Runspec.hpp>
24
25#include <cstddef>
26#include <ctime>
27#include <utility>
28#include <vector>
29
30namespace Opm {
31
32class UnitSystem;
33
34} // namespace Opm
35
36namespace Opm::RestartIO {
37
39{
40 RstHeader(const Runspec& runspec,
41 const UnitSystem& unit_system,
42 const std::vector<int>& intehead,
43 const std::vector<bool>& logihead,
44 const std::vector<double>& doubhead);
45
46 Runspec runspec;
47 int nx;
48 int ny;
49 int nz;
50 int nactive;
51 int num_wells;
52 int ncwmax;
53 int max_wells_in_group;
54 int max_groups_in_field;
55 int max_wells_in_field;
56 int year;
57 int month;
58 int mday;
59 int hour;
60 int minute;
61 int microsecond;
62 int phase_sum;
63 int niwelz;
64 int nswelz;
65 int nxwelz;
66 int nzwelz;
67 int niconz;
68 int nsconz;
69 int nxconz;
70 int nigrpz;
71 int nsgrpz;
72 int nxgrpz;
73 int nzgrpz;
74 int ncamax;
75 int niaaqz;
76 int nsaaqz;
77 int nxaaqz;
78 int nicaqz;
79 int nscaqz;
80 int nacaqz;
81 int tstep;
82 int report_step;
83 int histctl_override;
84 int newtmx;
85 int newtmn;
86 int litmax;
87 int litmin;
88 int mxwsit;
89 int mxwpit;
90 int version;
91 int iprog;
92 int nsegwl;
93 int nswlmx;
94 int nsegmx;
95 int nlbrmx;
96 int nisegz;
97 int nrsegz;
98 int nilbrz;
99 int ntfip ;
100 int nmfipr;
101 int ngroup;
102 int nwgmax;
103 int nfield_udq;
104 int ngroup_udq;
105 int nsegment_udq;
106 int nwell_udq;
107 int num_action;
108 int guide_rate_nominated_phase;
109 int max_wlist;
110
111 bool e300_radial;
112 bool e100_radial;
113 bool enable_hysteris;
114 bool enable_msw;
115 bool is_live_oil;
116 bool is_wet_gas;
117 bool const_comp_oil;
118 bool dir_relperm;
119 bool reversible_relperm;
120 bool endscale;
121 bool dir_eps;
122 bool reversible_eps;
123 bool alt_eps;
124 bool group_control_active;
125 bool glift_all_nupcol;
126
127 double next_timestep1;
128 double next_timestep2;
129 double max_timestep;
130 double guide_rate_a;
131 double guide_rate_b;
132 double guide_rate_c;
133 double guide_rate_d;
134 double guide_rate_e;
135 double guide_rate_f;
136 double guide_rate_delay;
137 double guide_rate_damping;
138 double udq_range;
139 double udq_undefined;
140 double udq_eps;
141 double glift_min_wait;
142 double glift_rate_delta;
143 double glift_min_eco_grad;
144
145 std::time_t sim_time() const;
146 std::pair<std::time_t, std::size_t> restart_info() const;
147 int num_udq() const;
148};
149
150} // namespace Opm::RestartIO
151
152#endif // RST_HEADER
Definition Runspec.hpp:480
Definition UnitSystem.hpp:34
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
Definition header.hpp:39