diff --git a/opm/parser/eclipse/EclipseState/Schedule/MSW/WellSegments.hpp b/opm/parser/eclipse/EclipseState/Schedule/MSW/WellSegments.hpp index 5452155d2..aee4e352f 100644 --- a/opm/parser/eclipse/EclipseState/Schedule/MSW/WellSegments.hpp +++ b/opm/parser/eclipse/EclipseState/Schedule/MSW/WellSegments.hpp @@ -62,6 +62,15 @@ namespace Opm { WellSegments() = default; + WellSegments(const std::string& wname, + double depthTopSeg, + double lengthTopSeg, + double volumeTopSeg, + LengthDepth lenDepType, + CompPressureDrop compDrop, + MultiPhaseModel multiPhase, + const std::vector& segments, + const std::map& segmentNumberIdx); const std::string& wellName() const; int size() const; @@ -70,6 +79,7 @@ namespace Opm { double volumeTopSegment() const; CompPressureDrop compPressureDrop() const; + LengthDepth lengthDepthType() const; MultiPhaseModel multiPhaseModel() const; // mapping the segment number to the index in the vector of segments @@ -92,6 +102,8 @@ namespace Opm { // it returns true if there is no error encountered during the update bool updateWSEGSICD(const std::vector >& sicd_pairs); + const std::vector& segments() const; + const std::map& segmentNumberIndex() const; bool updateWSEGVALV(const std::vector >& valve_pairs); diff --git a/src/opm/parser/eclipse/EclipseState/Schedule/MSW/WellSegments.cpp b/src/opm/parser/eclipse/EclipseState/Schedule/MSW/WellSegments.cpp index 2e6ecd66d..e1f697ce5 100644 --- a/src/opm/parser/eclipse/EclipseState/Schedule/MSW/WellSegments.cpp +++ b/src/opm/parser/eclipse/EclipseState/Schedule/MSW/WellSegments.cpp @@ -36,6 +36,27 @@ namespace Opm { + WellSegments::WellSegments(const std::string& wname, + double depthTopSeg, + double lengthTopSeg, + double volumeTopSeg, + LengthDepth lenDepType, + CompPressureDrop compDrop, + MultiPhaseModel multiPhase, + const std::vector& segments, + const std::map& segmentNumberIdx) + : m_well_name(wname) + , m_depth_top(depthTopSeg) + , m_length_top(lengthTopSeg) + , m_volume_top(volumeTopSeg) + , m_length_depth_type(lenDepType) + , m_comp_pressure_drop(compDrop) + , m_multiphase_model(multiPhase) + , m_segments(segments) + , segment_number_to_index(segmentNumberIdx) + { + } + const std::string& WellSegments::wellName() const { return m_well_name; } @@ -560,6 +581,18 @@ WellSegments::MultiPhaseModel WellSegments::MultiPhaseModelFromString(const std: } else { throw std::invalid_argument("Unknown enum string_value: " + string_value + " for MultiPhaseModel"); } +} + +WellSegments::LengthDepth WellSegments::lengthDepthType() const { + return m_length_depth_type; +} + +const std::vector& WellSegments::segments() const { + return m_segments; +} + +const std::map& WellSegments::segmentNumberIndex() const { + return segment_number_to_index; +} } -}