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