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);
71 const std::vector<Segment>& segments);
73 void loadWELSEGS(
const DeckKeyword& welsegsKeyword);
77 std::size_t size()
const;
79 int maxSegmentID()
const;
80 int maxBranchID()
const;
81 double depthTopSegment()
const;
82 double lengthTopSegment()
const;
83 double volumeTopSegment()
const;
85 CompPressureDrop compPressureDrop()
const;
88 int segmentNumberToIndex(
const int segment_number)
const;
92 const Segment& getFromSegmentNumber(
const int segment_number)
const;
94 const Segment& operator[](
size_t idx)
const;
101 double segmentLength(
const int segment_number)
const;
102 double segmentDepthChange(
const int segment_number)
const;
103 std::vector<Segment> branchSegments(
int branch)
const;
104 std::set<int> branches()
const;
107 bool updateWSEGSICD(
const std::vector<std::pair<int, SICD> >& sicd_pairs);
109 bool updateWSEGVALV(
const std::vector<std::pair<int, Valve> >& valve_pairs);
110 bool updateWSEGAICD(
const std::vector<std::pair<int, AutoICD> >& aicd_pairs,
const KeywordLocation& location);
111 const std::vector<Segment>::const_iterator begin()
const;
112 const std::vector<Segment>::const_iterator end()
const;
114 template<
class Serializer>
117 serializer(m_comp_pressure_drop);
118 serializer(m_segments);
119 serializer(segment_number_to_index);
124 void processINC(
double depth_top,
double length_top);
125 void process(LengthDepth length_depth,
double depth_top,
double length_top);
126 void addSegment(
const Segment& new_segment);
127 void addSegment(
const int segment_number,
129 const int outlet_segment,
132 const double internal_diameter,
133 const double roughness,
134 const double cross_area,
136 const bool data_ready,
138 const double node_y);
139 const Segment& topSegment()
const;
142 CompPressureDrop m_comp_pressure_drop{CompPressureDrop::HFA};
146 std::vector< Segment > m_segments{};
149 std::map<int, int> segment_number_to_index{};
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30