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);
72 const std::vector<Segment>& segments);
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 void checkSegmentDepthConsistency(
const std::string& well_name,
const UnitSystem& unit_system)
const;
116 template<
class Serializer>
119 serializer(m_comp_pressure_drop);
120 serializer(m_segments);
121 serializer(segment_number_to_index);
126 void processINC(
double depth_top,
double length_top);
127 void process(
const std::string& well_name,
const UnitSystem& unit_system,
128 LengthDepth length_depth,
double depth_top,
double length_top);
129 void addSegment(
const Segment& new_segment);
130 void addSegment(
const int segment_number,
132 const int outlet_segment,
135 const double internal_diameter,
136 const double roughness,
137 const double cross_area,
139 const bool data_ready,
141 const double node_y);
142 const Segment& topSegment()
const;
145 CompPressureDrop m_comp_pressure_drop{CompPressureDrop::HFA};
149 std::vector< Segment > m_segments{};
152 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