From 006b65e05459665b514588ba81a536b539dbdc09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A5rd=20Skaflestad?= Date: Mon, 2 Oct 2023 13:15:49 +0200 Subject: [PATCH] Prevent Duplicate Inlet Segments If one WELSEGS keyword does not redefine every existing segment, then we risk adding the same inlet segment multiple times. If that happens, we get a segment structure for which there might appear to be multiple inlet segments on the same branch which is not possible in a tree structure. This commit prevents that situation by only adding the new segment number if it is not already listed in 'm_inlet_segments'. --- src/opm/input/eclipse/Schedule/MSW/Segment.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/opm/input/eclipse/Schedule/MSW/Segment.cpp b/src/opm/input/eclipse/Schedule/MSW/Segment.cpp index 59a998eb9..51311cd6a 100644 --- a/src/opm/input/eclipse/Schedule/MSW/Segment.cpp +++ b/src/opm/input/eclipse/Schedule/MSW/Segment.cpp @@ -24,9 +24,11 @@ #include #include +#include #include #include #include +#include namespace { @@ -277,8 +279,15 @@ namespace Opm { return m_inlet_segments; } - void Segment::addInletSegment(const int segment_number_in) { - m_inlet_segments.push_back(segment_number_in); + void Segment::addInletSegment(const int segment_number_in) + { + auto segPos = std::find(this->m_inlet_segments.begin(), + this->m_inlet_segments.end(), + segment_number_in); + + if (segPos == this->m_inlet_segments.end()) { + this->m_inlet_segments.push_back(segment_number_in); + } } double Segment::invalidValue() {