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