50 enum class LengthDepth {
54 static const std::string LengthDepthToString(LengthDepth enumValue);
55 static LengthDepth LengthDepthFromString(
const std::string& stringValue);
57 using CompPressureDrop = WellSegmentCompPressureDrop;
59 static const std::string CompPressureDropToString(CompPressureDrop enumValue);
60 static CompPressureDrop CompPressureDropFromString(
const std::string& stringValue);
63 enum class MultiPhaseModel {
67 static const std::string MultiPhaseModelToString(MultiPhaseModel enumValue);
68 static MultiPhaseModel MultiPhaseModelFromString(
const std::string& stringValue);
70 WellSegments() =
default;
71 WellSegments(CompPressureDrop compDrop,
72 const std::vector<Segment>& segments);
75 static WellSegments serializationTestObject();
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;
97 bool operator==(
const WellSegments& )
const;
98 bool operator!=(
const WellSegments& )
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 void checkSegmentDepthConsistency(
const std::string& well_name,
const UnitSystem& unit_system)
const;
115 template<
class Serializer>
118 serializer(m_comp_pressure_drop);
119 serializer(m_segments);
120 serializer(segment_number_to_index);
125 void processINC(
double depth_top,
double length_top);
126 void process(
const std::string& well_name,
const UnitSystem& unit_system,
127 LengthDepth length_depth,
double depth_top,
double length_top);
128 void addSegment(
const Segment& new_segment);
129 void addSegment(
const int segment_number,
131 const int outlet_segment,
134 const double internal_diameter,
135 const double roughness,
136 const double cross_area,
138 const bool data_ready,
140 const double node_y);
141 const Segment& topSegment()
const;
144 CompPressureDrop m_comp_pressure_drop{CompPressureDrop::HFA};
148 std::vector< Segment > m_segments{};
151 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