My Project
Loading...
Searching...
No Matches
group.hpp
1/*
2 Copyright (c) 2018 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 OPM_OUTPUT_ECLIPSE_VECTOR_GROUP_HPP
21#define OPM_OUTPUT_ECLIPSE_VECTOR_GROUP_HPP
22
23#include <vector>
24
25namespace Opm { namespace RestartIO { namespace Helpers { namespace VectorItems {
26
27 namespace SGroup {
28 enum index : std::vector<float>::size_type {
29 EfficiencyFactor = 92, // Group's efficiency factor (Item 2 of GEFAC)
30 };
31
32 enum prod_index : std::vector<float>::size_type {
33 GuideRate = 2, // Group's guide rate value
34 OilRateLimit = 6, // Group's oil production target/limit
35 WatRateLimit = 7, // Group's water production target/limit
36 GasRateLimit = 8, // Group's gas production target/limit
37 LiqRateLimit = 9, // Group's liquid production target/limit
38
39 GLOMaxSupply = 34, // Group's maximum supply of lift gas
40
41 GasRateLimit_2 = 39, // Copy of group's gas production target/limit
42 OilRateLimit_2 = 52, // Copy of group's oil production target/limit
43 WatRateLimit_2 = 53, // Copy of group's water production target/limit
44 LiqRateLimit_2 = 54, // Copy of group's liquid production target/limit
45
46 GLOMaxRate = 91, // Group's maximum lift gas rate
47 };
48
49 enum inj_index : std::vector<float>::size_type {
50 oilSurfRateLimit = 10, // Group's oil surface volume injection rate target/limit
51 oilResRateLimit = 11, // Group's oil reservoir volume injection rate target/limit
52 oilReinjectionLimit = 12, // Group's oil reinjection fraction target/limit
53 oilVoidageLimit = 13, // Group's oil voidage injection fraction target/limit
54
55 waterSurfRateLimit = 15, // Group's water surface volume injection rate target/limit
56 waterResRateLimit = 16, // Group's water reservoir volume injection rate target/limit
57 waterReinjectionLimit = 17, // Group's water reinjection fraction target/limit
58 waterVoidageLimit = 18, // Group's water voidage injection fraction target/limit
59 waterGuideRate = 19, // Group's water injection guide rate
60
61 gasSurfRateLimit = 20, // Group's gas surface volume injection rate target/limit
62 gasResRateLimit = 21, // Group's gas reservoir volume injection rate target/limit
63 gasReinjectionLimit = 22, // Group's gas reinjection fraction target/limit
64 gasVoidageLimit = 23, // Group's gas voidage injection fraction target/limit
65 gasGuideRate = 24, // Group's gas injection guide rate
66
67 oilSurfRateLimit_2 = 57, // Copy of group's oil surface volume injection rate target/limit
68 oilResRateLimit_2 = 58, // Copy of group's oil reservoir volume injection rate target/limit
69 oilReinjectionLimit_2 = 59, // Copy of group's oil reinjection fraction target/limit
70 oilVoidageLimit_2 = 60, // Copy of group's oil voidage injection fraction target/limit
71
72 waterSurfRateLimit_2 = 61, // Copy of group's water surface volume injection rate target/limit
73 waterResRateLimit_2 = 62, // Copy of group's water reservoir volume injection rate target/limit
74 waterReinjectionLimit_2 = 63, // Copy of group's water reinjection fraction target/limit
75 waterVoidageLimit_2 = 64, // Copy of group's water voidage injection fraction target/limit
76
77 gasSurfRateLimit_2 = 65, // Copy of group's gas surface volume injection rate target/limit
78 gasResRateLimit_2 = 66, // Copy of group's gas reservoir volume injection rate target/limit
79 gasReinjectionLimit_2 = 67, // Copy of group's gas reinjection fraction target/limit
80 gasVoidageLimit_2 = 68, // Copy of group's gas voidage injection fraction target/limit
81 };
82
83 namespace Value {
84 constexpr auto NoGLOLimit = -10.0f;
85 } // namespace Value
86 } // SGroup
87
88
89 namespace IGroup {
90 // Observe that these value should not be used as ordinary indices into
91 // the the IGRP vector, they should all be used as IGRP[NWGMAX + $index]
92 enum index : std::vector<int>::size_type {
93 NoOfChildGroupsWells = 0,
94 ProdActiveCMode = 1,
95 ProdHighLevCtrl = 5,
96 GuideRateDef = 6,
97 ExceedAction = 7,
98 GConProdCMode = 10,
99 WInjActiveCMode = 16,
100 WInjHighLevCtrl = 17,
101 GConInjeWInjCMode = 19,
102 GConInjeWaterGuideRateMode = 20,
103 GInjActiveCMode = 21,
104 GInjHighLevCtrl = 22,
105 GConInjeGInjCMode = 24,
106 GConInjeGasGuideRateMode = 25,
107 GroupType = 26,
108 GroupLevel = 27,
109 ParentGroup = 28,
110 FlowingWells = 33,
111 NodeNumber = 39,
112 VoidageGroupIndex = 89
113 };
114
115 namespace Value {
116 enum GuideRateMode : int {
117 None = 0,
118 Oil = 1,
119 Water = 2,
120 Gas = 3,
121 Liquid = 4,
122 Resv = 6, // need to be verified!!!
123 Potn = 7,
124 Form = 8,
125 Comb = 9,
126 };
127
128 enum GroupType : int {
129 WellGroup = 0,
130 TreeGroup = 1,
131 };
132
133 }
134
135 }
136
137
138 namespace XGroup {
139 enum index : std::vector<double>::size_type {
140 OilPrRate = 0, // Group's oil production rate
141 WatPrRate = 1, // Group's water production rate
142 GasPrRate = 2, // Group's gas production rate
143 LiqPrRate = 3, // Group's liquid production rate
144
145 WatInjRate = 5, // Group's water injection rate
146 GasInjRate = 6, // Group's gas injection rate
147
148 WatCut = 8, // Group's producing water cut
149 GORatio = 9, // Group's producing gas/oil ratio
150
151 OilPrTotal = 10, // Group's total cumulative oil production
152 WatPrTotal = 11, // Group's total cumulative water production
153 GasPrTotal = 12, // Group's total cumulative gas production
154 VoidPrTotal = 13, // Group's total cumulative reservoir
155 // voidage production
156
157 WatInjTotal = 15, // Group's total cumulative water injection
158 GasInjTotal = 16, // Group's total cumulative gas injection
159 VoidInjTotal = 17, // Group's total cumulative reservoir volume injection
160
161 OilPrPot = 22, // Group's oil production potential
162 WatPrPot = 23, // Group's water production potential
163
164 OilPrTotalSolution = 73, // Group's total cumulative oil production in solution
165 GasPrTotalSolution = 74, // Group's total cumulative gas production in solution
166
167 OilPrGuideRate = 85, // Group's producer guide rate for oil.
168 WatPrGuideRate = 86, // Group's producer guide rate for water.
169 GasPrGuideRate = 87, // Group's producer guide rate for gas.
170 VoidPrGuideRate = 88, // Group's producer guide rate for reservoir voidage volume.
171
172 OilInjGuideRate = 89, // Group's injection guide rate for oil.
173 WatInjGuideRate = 91, // Group's injection guide rate for water.
174 WatInjGuideRate_2 = 92, // Second copy of group's injection guide rate for water.
175 // Not fully characterised.
176 GasInjGuideRate = 93, // Groups injection guide rate for gas.
177
178 OilPrGuideRate_2 = 127, // Second copy of group's producer guide rate for oil.
179 // Not fully characterised.
180 WatPrGuideRate_2 = 128, // Second copy of group's producer guide rate for water.
181 // Not fully characterised.
182 GasPrGuideRate_2 = 129, // Second copy of group's producer guide rate for gas.
183 // Not fully characterised.
184 VoidPrGuideRate_2 = 130, // Second copy of group's producer guide rate for
185 // reservoir voidage volume. Not fully characterised.
186
187 HistOilPrTotal = 135, // Group's total cumulative oil
188 // production (observed/historical rates)
189 HistWatPrTotal = 139, // Group's total cumulative water
190 // production (observed/historical rates)
191 HistWatInjTotal = 140, // Group's total cumulative water
192 // injection (observed/historical rates)
193 HistGasPrTotal = 143, // Group's total cumulative gas
194 // production (observed/historical rates)
195 HistGasInjTotal = 144, // Group's total cumulative gas injection
196 // (observed/historical rates)
197
198 TracerOffset = 180, // Tracer data starts here
199 };
200 } // XGroup
201
202}}}} // Opm::RestartIO::Helpers::VectorItems
203
204#endif // OPM_OUTPUT_ECLIPSE_VECTOR_GROUP_HPP
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30