opm-common
Toggle main menu visibility
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
25
namespace
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
opm
output
eclipse
VectorItems
msw.hpp
Generated by
1.17.0