My Project
doubhead.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_DOUBHEAD_HPP
21 #define OPM_OUTPUT_ECLIPSE_VECTOR_DOUBHEAD_HPP
22 
23 #include <vector>
24 
25 namespace Opm { namespace RestartIO { namespace Helpers { namespace VectorItems {
26 
27  // This is a subset of the items in src/opm/output/eclipse/DoubHEAD.cpp .
28  // Promote items from that list to this in order to make them public.
29  enum doubhead : std::vector<double>::size_type {
30  TsInit = 1, // Maximum Length of Next Timestep
31  TsMaxz = 2, // Maximum Length of Timestep After Next
32  TsMinz = 3, // Minumum Length of All Timesteps
33  TsMchp = 4,
34  TsFMax = 5,
35  TsFMin = 6,
36  TsFcnv = 7,
37  TrgTTE = 8,
38  TrgCNV = 9,
39  TrgMBE = 10,
40  TrgLCV = 11,
41  XxxTTE = 16,
42  XxxCNV = 17,
43  XxxMBE = 18,
44  XxxLCV = 19,
45  XxxWFL = 20,
46 
47  Netbalthpc = 50, // Network balancing THP convergence limit (NETBALAN(4))
48  Netbalint = 51, // Network balancing interval (NETBALAN(1))
49  Netbalnpre = 53, // Network balancing nodal pressure
50  // convergence limit (NETBALAN(2))
51 
52  Netbaltarerr = 63, // Target largest branch network balancing
53  // error at end of timestep (NETBALAN(6))
54 
55  Netbalmaxerr = 64, // Maximum permitted network balancing error
56  // at end of timestep (NETBALAN(7))
57 
58  Netbalstepsz = 66, // Minimum stepsize for steps limited by
59  // network balancing errors (NETBALAN(8))
60 
61  TrgDPR = 82,
62  TfDiff = 83,
63  DdpLim = 84,
64  DdsLim = 85,
65  GRpar_a = 87, // Guiderate parameter A
66  GRpar_b = 88, // Guiderate parameter B
67  GRpar_c = 89, // Guiderate parameter C
68  GRpar_d = 90, // Guiderate parameter D
69  GRpar_e = 91, // Guiderate parameter E
70  GRpar_f = 92, // Guiderate parameter F
71  LOminInt = 93, // LIFTOP - Minimum interval between gas lift optimizations
72  LOincrsz = 95, // LIFTOPT - Increment size for lift gas injection rate
73  LOminEcGrad = 96, // LIFTOPT - Minimum economic gradient
74  GRpar_int = 97, // Guiderate parameter delay interval
75  ThrUPT = 99,
76  XxxDPR = 100,
77  TrgFIP = 101,
78  TrgSFT = 102,
79  GRpar_damp = 144, // Guiderate parameter damping factor
80  WsegRedFac = 145, // WSEGITER parameter (item 3) Reduction factor (F_R)
81  WsegIncFac = 146, // WSEGITER parameter (item 4) Increas factor (F_I)
82  UdqPar_2 = 212, // UDQPARAM item number 2 (Permitted range (+/-) of user-defined quantities)
83  UdqPar_3 = 213, // UDQPARAM item number 3 (Value given to undefined elements when outputting data)
84  UdqPar_4 = 214, // UDQPARAM item number 4 (fractional equality tolerance used in ==, <= etc. functions)
85  };
86 
87  namespace DoubHeadValue {
88  // Default if no active network (BRANPROP/NODEPROP)
89  constexpr auto NetBalNodPressDefault = 0.0; // Barsa
90 
91  // Default => Use TSMINZ from TUNING
92  constexpr auto NetBalMinTSDefault = 0.0;
93  }
94 
95 }}}} // Opm::RestartIO::Helpers::VectorItems
96 
97 #endif // OPM_OUTPUT_ECLIPSE_VECTOR_DOUBHEAD_HPP
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29