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 { namespace RestartIO { namespace Helpers { namespace 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 } // ISeg
42
43 namespace ILbr {
44 enum index : std::vector<int>::size_type {
45 OutletSegment = 0, // Branch's outlet segment (one-based)
46 NumBranchSegments = 1, // Number of segments on branch
47 FirstSegment = 2, // First segment on branch (kick-off, heel)
48 LastSegment = 3, // Last segment on branch (toe)
49 KickOffDiscoveryOffset = 4, // Segment traversal order at which this branch was encountered
50 };
51 } // ILbr
52
53 namespace RSeg {
54 enum index : std::vector<double>::size_type {
55 DistOutlet = 0, // Segment's distance to outlet
56 OutletDepthDiff = 1, // Segment's depth differential to outlet
57 SegDiam = 2, // Internal diameter of segment
58 SegRough = 3, // Roughness parameter of segment
59 SegArea = 4, // Cross-sectional area of segment
60 SegVolume = 5, // Physical volume of segment
61 DistBHPRef = 6, // Segment's distance to BHP reference node
62 SegNodeDepth = 7, // Segment's node depth
63
64 TotFlowRate = 8, // Normalised total segment flow rate
65 WatFlowFract = 9, // Normalised Water flow rate fraction
66 GasFlowFract = 10, // Normalised Gas flow rate fraction
67 Pressure = 11, // Segment pressure
68
69 item31 = 30, // Very close to Normalised Water flow rate fraction - value used pr today
70
71 item40 = 39, // Unknown
72
73 ValveLength = 40, // Length of valve
74 ValveArea = 41, // Cross-sectional area of valve
75 ValveFlowCoeff = 42, // Valve's dimensionless flow coefficient
76 ValveMaxArea = 43, // Maximal cross-sectional valve area
77
78 DeviceBaseStrength = 86,
79
80 ScalingFactor = 87,
81
82 CalibrFluidDensity = 88,
83 CalibrFluidViscosity = 89,
84
85 CriticalWaterFraction = 90,
86 TransitionRegWidth = 91,
87 MaxEmulsionRatio = 92,
88
89 FlowRateExponent = 95,
90 ViscFuncExponent = 96,
91
92 MaxValidFlowRate = 97,
93
94 ICDLength = 102,
95
96 ValveAreaFraction = 103,
97
98 flowFractionOilDensityExponent = 105,
99 flowFractionWaterDensityExponent = 106,
100 flowFractionGasDensityExponent = 107,
101 flowFractionOilViscosityExponent = 108,
102 flowFractionWaterViscosityExponent = 109,
103 flowFractionGasViscosityExponent = 110,
104 };
105 } // RSeg
106
107}}}} // Opm::RestartIO::Helpers::VectorItems
108
109#endif // OPM_OUTPUT_ECLIPSE_VECTOR_MSW_HPP
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30