20#ifndef SEGMENTSET_HPP_HEADER_INCLUDED
21#define SEGMENTSET_HPP_HEADER_INCLUDED
27#include <opm/input/eclipse/Schedule/MSW/Segment.hpp>
33 class WellConnections;
38 enum class WellSegmentCompPressureDrop {
45 class KeywordLocation;
49 enum class LengthDepth {
53 static const std::string LengthDepthToString(LengthDepth enumValue);
54 static LengthDepth LengthDepthFromString(
const std::string& stringValue);
56 using CompPressureDrop = WellSegmentCompPressureDrop;
58 static const std::string CompPressureDropToString(CompPressureDrop enumValue);
59 static CompPressureDrop CompPressureDropFromString(
const std::string& stringValue);
62 enum class MultiPhaseModel {
66 static const std::string MultiPhaseModelToString(MultiPhaseModel enumValue);
67 static MultiPhaseModel MultiPhaseModelFromString(
const std::string& stringValue);
72 const std::vector<Segment>& segments);
74 void loadWELSEGS(
const DeckKeyword& welsegsKeyword);
78 std::size_t size()
const;
80 double depthTopSegment()
const;
81 double lengthTopSegment()
const;
82 double volumeTopSegment()
const;
84 CompPressureDrop compPressureDrop()
const;
87 int segmentNumberToIndex(
const int segment_number)
const;
91 const Segment& getFromSegmentNumber(
const int segment_number)
const;
93 const Segment& operator[](
size_t idx)
const;
100 double segmentLength(
const int segment_number)
const;
101 double segmentDepthChange(
const int segment_number)
const;
102 std::vector<Segment> branchSegments(
int branch)
const;
103 std::set<int> branches()
const;
106 bool updateWSEGSICD(
const std::vector<std::pair<int, SICD> >& sicd_pairs);
108 bool updateWSEGVALV(
const std::vector<std::pair<int, Valve> >& valve_pairs);
109 bool updateWSEGAICD(
const std::vector<std::pair<int, AutoICD> >& aicd_pairs,
const KeywordLocation& location);
110 const std::vector<Segment>::const_iterator begin()
const;
111 const std::vector<Segment>::const_iterator end()
const;
113 template<
class Serializer>
116 serializer(m_comp_pressure_drop);
117 serializer(m_segments);
118 serializer(segment_number_to_index);
123 void processINC(
double depth_top,
double length_top);
124 void process(LengthDepth length_depth,
double depth_top,
double length_top);
125 void addSegment(
const Segment& new_segment);
126 void addSegment(
const int segment_number,
128 const int outlet_segment,
131 const double internal_diameter,
132 const double roughness,
133 const double cross_area,
135 const bool data_ready,
137 const double node_y);
138 const Segment& topSegment()
const;
141 CompPressureDrop m_comp_pressure_drop;
145 std::vector< Segment > m_segments;
148 std::map<int, int> segment_number_to_index;
Definition: DeckKeyword.hpp:36
Definition: KeywordLocation.hpp:27
Definition: Segment.hpp:63
Class for (de-)serializing.
Definition: Serializer.hpp:84
Definition: WellConnections.hpp:45
Definition: WellSegments.hpp:47
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30