opm-common
msw.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_MSW_HPP
21 #define OPM_OUTPUT_ECLIPSE_VECTOR_MSW_HPP
22 
23 #include <vector>
24 
26 
27  namespace ISeg {
28 
29  enum index : std::vector<int>::size_type {
30  SegNo = 0, // Segment number (one-based)
31  OutSeg = 1, // Outlet segment (one-based)
32  InSegCurBranch = 2, // Inflow segment current branch (one-based)
33  BranchNo = 3, // Branch number (one-based)
34 
35  SegmentType = 11,
36 
37  ICDScalingMode = 18,
38  ICDOpenShutFlag = 19,
39  };
40 
41  namespace Value {
42  enum Type {
43  AutoICD = -8, // Segment is an AICD
44  SpiralICD = -7, // Segment is an SICD
45  Valve = -5, // Segment is a Valve
46  Regular = -1, // Regular segment (i.e., not a device &c)
47  };
48  } // Value
49 
50  } // ISeg
51 
52  namespace ILbr {
53  enum index : std::vector<int>::size_type {
54  OutletSegment = 0, // Branch's outlet segment (one-based)
55  NumBranchSegments = 1, // Number of segments on branch
56  FirstSegment = 2, // First segment on branch (kick-off, heel)
57  LastSegment = 3, // Last segment on branch (toe)
58  KickOffDiscoveryOffset = 4, // Segment traversal order at which this branch was encountered
59  };
60  } // ILbr
61 
62  namespace RSeg {
63  enum index : std::vector<double>::size_type {
64  DistOutlet = 0, // Segment's distance to outlet
65  OutletDepthDiff = 1, // Segment's depth differential to outlet
66  SegDiam = 2, // Internal diameter of segment
67  SegRough = 3, // Roughness parameter of segment
68  SegArea = 4, // Cross-sectional area of segment
69  SegVolume = 5, // Physical volume of segment
70  DistBHPRef = 6, // Segment's distance to BHP reference node
71  SegNodeDepth = 7, // Segment's node depth
72 
73  TotFlowRate = 8, // Normalised total segment flow rate
74  WatFlowFract = 9, // Normalised Water flow rate fraction
75  GasFlowFract = 10, // Normalised Gas flow rate fraction
76  Pressure = 11, // Segment pressure
77 
78  item31 = 30, // Very close to Normalised Water flow rate fraction - value used pr today
79 
80  item40 = 39, // Unknown
81 
82  ValveLength = 40, // Length of valve
83  ValveArea = 41, // Cross-sectional area of valve
84  ValveFlowCoeff = 42, // Valve's dimensionless flow coefficient
85  ValveMaxArea = 43, // Maximal cross-sectional valve area
86 
87  DeviceBaseStrength = 86,
88 
89  ScalingFactor = 87,
90 
91  CalibrFluidDensity = 88,
92  CalibrFluidViscosity = 89,
93 
94  CriticalWaterFraction = 90,
95  TransitionRegWidth = 91,
96  MaxEmulsionRatio = 92,
97 
98  FlowRateExponent = 95,
99  ViscFuncExponent = 96,
100 
101  MaxValidFlowRate = 97,
102 
103  ICDLength = 102,
104 
105  ValveAreaFraction = 103,
106 
107  flowFractionOilDensityExponent = 105,
108  flowFractionWaterDensityExponent = 106,
109  flowFractionGasDensityExponent = 107,
110  flowFractionOilViscosityExponent = 108,
111  flowFractionWaterViscosityExponent = 109,
112  flowFractionGasViscosityExponent = 110,
113  };
114  } // RSeg
115 
116 } // Opm::RestartIO::Helpers::VectorItems
117 
118 #endif // OPM_OUTPUT_ECLIPSE_VECTOR_MSW_HPP
Definition: action.hpp:25
Definition: AggregateMSWData.cpp:403
Definition: AggregateMSWData.cpp:523