opm-common
udq.hpp
1 /*
2  Copyright (c) 2024 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_UDQ_HPP
21 #define OPM_OUTPUT_ECLIPSE_VECTOR_UDQ_HPP
22 
23 #include <vector>
24 
26 
27  namespace IUad {
28  enum index : std::vector<int>::size_type {
29  UDACode = 0, // Integer code for keyword/item combination.
30  UDQIndex = 1, // UDQ insertion index (one-based)
31 
32  NumIuapElm = 2, // Number of elements in IUAP for this UDA.
33 
34  UseCount = 3, // Number of times this UDA is used in this
35  // way--i.e., number of wells (or groups) for
36  // which this UDA supplies this particular limit
37  // in this particular keyword.
38 
39  Offset = 4, // One-based start offset in IUAP for this UDA.
40  };
41 
42  namespace Value {
43  enum IuapElems : int {
44  Well = 1, // UDA applies to a well
45  GrpProd = 2, // UDA applies to group or FIELD level
46  // production (GCONPROD keyword)
47  GrpInj = 3, // UDA applies to group or FIELD level
48  // injection (GCONINJE keyword)
49  };
50  } // namespace Value
51  } // namespace IUad
52 
53  namespace ZUdn {
54  enum index : std::vector<const char*>::size_type {
55  Keyword = 0, // UDQ name
56  Unit = 1, // UDQ Unit
57  };
58  } // namespace ZUdn
59 
60 } // Opm::RestartIO::Helpers::VectorItems
61 
62 #endif // OPM_OUTPUT_ECLIPSE_VECTOR_UDQ_HPP
Definition: action.hpp:25