My Project
Loading...
Searching...
No Matches
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
25namespace Opm::RestartIO::Helpers::VectorItems {
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