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
25namespace 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:30