My Project
Loading...
Searching...
No Matches
WellEnums.hpp
1/*
2 Copyright 2019 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 WELL_ENUMS_HPP
21#define WELL_ENUMS_HPP
22
23#include <iosfwd>
24#include <string>
25
26namespace Opm {
27
28enum class WellStatus {
29 OPEN = 1,
30 STOP = 2,
31 SHUT = 3,
32 AUTO = 4
33};
34
35/*
36 The elements in this enum are used as bitmasks to keep track
37 of which controls are present, i.e. the 2^n structure must
38 be intact.
39*/
40enum class WellInjectorCMode : int{
41 RATE = 1 ,
42 RESV = 2 ,
43 BHP = 4 ,
44 THP = 8 ,
45 GRUP = 16 ,
46 CMODE_UNDEFINED = 512
47};
48
49/*
50 The items BHP, THP and GRUP only apply in prediction mode:
51 WCONPROD. The elements in this enum are used as bitmasks to
52 keep track of which controls are present, i.e. the 2^n
53 structure must be intact. The NONE item is only used in
54 WHISTCTL to cancel its effect.
55*/
56
57enum class WellProducerCMode : int {
58 NONE = 0,
59 ORAT = 1,
60 WRAT = 2,
61 GRAT = 4,
62 LRAT = 8,
63 CRAT = 16,
64 RESV = 32,
65 BHP = 64,
66 THP = 128,
67 GRUP = 256,
68 CMODE_UNDEFINED = 1024
69};
70
71enum class WellWELTARGCMode {
72 ORAT = 1,
73 WRAT = 2,
74 GRAT = 3,
75 LRAT = 4,
76 CRAT = 5, // Not supported
77 RESV = 6,
78 BHP = 7,
79 THP = 8,
80 VFP = 9,
81 LIFT = 10, // Not supported
82 GUID = 11
83};
84
85enum class WellGuideRateTarget {
86 OIL = 0,
87 WAT = 1,
88 GAS = 2,
89 LIQ = 3,
90 COMB = 4,
91 WGA = 5,
92 CVAL = 6,
93 RAT = 7,
94 RES = 8,
95 UNDEFINED = 9
96};
97
98enum class WellGasInflowEquation {
99 STD = 0,
100 R_G = 1,
101 P_P = 2,
102 GPP = 3
103};
104
105std::string WellStatus2String(WellStatus enumValue);
106WellStatus WellStatusFromString(const std::string& stringValue);
107std::ostream& operator<<(std::ostream& os, const WellStatus& st);
108
109std::string WellInjectorCMode2String(WellInjectorCMode enumValue);
110WellInjectorCMode WellInjectorCModeFromString(const std::string& stringValue);
111std::ostream& operator<<(std::ostream& os, const WellInjectorCMode& cm);
112
113std::string WellProducerCMode2String(WellProducerCMode enumValue);
114WellProducerCMode WellProducerCModeFromString(const std::string& stringValue);
115std::ostream& operator<<(std::ostream& os, const WellProducerCMode& cm);
116
117WellWELTARGCMode WellWELTARGCModeFromString(const std::string& stringValue);
118
119std::string WellGuideRateTarget2String(WellGuideRateTarget enumValue);
120WellGuideRateTarget WellGuideRateTargetFromString(const std::string& stringValue);
121
122std::string WellGasInflowEquation2String(WellGasInflowEquation enumValue);
123WellGasInflowEquation WellGasInflowEquationFromString(const std::string& stringValue);
124
125}
126
127#endif
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30