20 #ifndef SEGMENTSET_HPP_HEADER_INCLUDED
21 #define SEGMENTSET_HPP_HEADER_INCLUDED
27 #include <opm/input/eclipse/Schedule/MSW/Segment.hpp>
33 class WellConnections;
39 class KeywordLocation;
43 enum class LengthDepth{
47 static const std::string LengthDepthToString(LengthDepth enumValue);
48 static LengthDepth LengthDepthFromString(
const std::string& stringValue);
51 enum class CompPressureDrop {
56 static const std::string CompPressureDropToString(CompPressureDrop enumValue);
57 static CompPressureDrop CompPressureDropFromString(
const std::string& stringValue);
60 enum class MultiPhaseModel {
64 static const std::string MultiPhaseModelToString(MultiPhaseModel enumValue);
65 static MultiPhaseModel MultiPhaseModelFromString(
const std::string& stringValue);
70 const std::vector<Segment>& segments);
72 void loadWELSEGS(
const DeckKeyword& welsegsKeyword);
76 std::size_t size()
const;
77 double depthTopSegment()
const;
78 double lengthTopSegment()
const;
79 double volumeTopSegment()
const;
81 CompPressureDrop compPressureDrop()
const;
84 int segmentNumberToIndex(
const int segment_number)
const;
88 const Segment& getFromSegmentNumber(
const int segment_number)
const;
90 const Segment& operator[](
size_t idx)
const;
97 double segmentLength(
const int segment_number)
const;
98 double segmentDepthChange(
const int segment_number)
const;
99 std::vector<Segment> branchSegments(
int branch)
const;
100 std::set<int> branches()
const;
103 bool updateWSEGSICD(
const std::vector<std::pair<int, SICD> >& sicd_pairs);
105 bool updateWSEGVALV(
const std::vector<std::pair<int, Valve> >& valve_pairs);
106 bool updateWSEGAICD(
const std::vector<std::pair<int, AutoICD> >& aicd_pairs,
const KeywordLocation& location);
107 const std::vector<Segment>::const_iterator begin()
const;
108 const std::vector<Segment>::const_iterator end()
const;
110 template<
class Serializer>
113 serializer(m_comp_pressure_drop);
114 serializer.vector(m_segments);
115 serializer(segment_number_to_index);
120 void processINC(
double depth_top,
double length_top);
121 void process(LengthDepth length_depth,
double depth_top,
double length_top);
122 void addSegment(
const Segment& new_segment);
123 void addSegment(
int segment_number,
128 double internal_diameter,
133 const Segment& topSegment()
const;
136 CompPressureDrop m_comp_pressure_drop;
143 std::vector< Segment > m_segments;
146 std::map<int, int> segment_number_to_index;
Definition: DeckKeyword.hpp:36
Definition: KeywordLocation.hpp:27
Definition: Segment.hpp:63
Definition: Serializer.hpp:38
Definition: WellConnections.hpp:40
Definition: WellSegments.hpp:41
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29