My Project
group.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_GROUP
20 #define RST_GROUP
21 
22 #include <array>
23 #include <vector>
24 #include <string>
25 
26 namespace Opm {
27 class UnitSystem;
28 
29 namespace RestartIO {
30 
31 struct RstHeader;
32 
33 struct RstGroup {
34  RstGroup(const UnitSystem& unit_system,
35  const RstHeader& header,
36  const std::string* zwel,
37  const int * igrp,
38  const float * sgrp,
39  const double * xgrp);
40 
41  std::string name;
42 
43  int parent_group;
44  int prod_cmode;
45  int winj_cmode;
46  int ginj_cmode;
47  int prod_guide_rate_def;
48  int exceed_action;
49  int inj_water_guide_rate_def;
50  int inj_gas_guide_rate_def;
51 
52  float oil_rate_limit;
53  float water_rate_limit;
54  float gas_rate_limit;
55  float liquid_rate_limit;
56  float water_surface_limit;
57  float water_reservoir_limit;
58  float water_reinject_limit;
59  float water_voidage_limit;
60  float gas_surface_limit;
61  float gas_reservoir_limit;
62  float gas_reinject_limit;
63  float gas_voidage_limit;
64  float glift_max_supply;
65  float glift_max_rate;
66  float efficiency_factor;
67  float inj_water_guide_rate;
68  float inj_gas_guide_rate;
69 
70  double oil_production_rate;
71  double water_production_rate;
72  double gas_production_rate;
73  double liquid_production_rate;
74  double water_injection_rate;
75  double gas_injection_rate;
76  double wct;
77  double gor;
78  double oil_production_total;
79  double water_production_total;
80  double gas_production_total;
81  double voidage_production_total;
82  double water_injection_total;
83  double gas_injection_total;
84  double voidage_injection_total;
85  double oil_production_potential;
86  double water_production_potential;
87  double history_total_oil_production;
88  double history_total_water_production;
89  double history_total_water_injection;
90  double history_total_gas_production;
91  double history_total_gas_injection;
92 };
93 
94 
95 }
96 }
97 
98 
99 
100 
101 #endif
Definition: UnitSystem.hpp:34
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29
Definition: group.hpp:33
Definition: header.hpp:33