mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#7729 MSW : Fix wrong segment for lateral
A lateral is connected to wrong segment for user defined reference MD
This commit is contained in:
parent
ae7285b478
commit
eba78b2660
@ -206,23 +206,34 @@ RicMswSegment* RicMswBranch::findClosestSegmentWithLowerMD( double measuredDepth
|
||||
return segmentCount() > 0 ? segments().back() : nullptr;
|
||||
}
|
||||
|
||||
RicMswSegment* closestSegment = nullptr;
|
||||
double smallestDistance = std::numeric_limits<double>::infinity();
|
||||
|
||||
for ( auto seg : segments() )
|
||||
if ( segmentCount() > 0 )
|
||||
{
|
||||
// WELSEGS is reported as the midpoint of the segment
|
||||
double midpointMD = 0.5 * ( seg->startMD() + seg->endMD() );
|
||||
RicMswSegment* closestSegment = nullptr;
|
||||
double smallestDistance = std::numeric_limits<double>::infinity();
|
||||
|
||||
double candidateDistance = measuredDepthLocation - midpointMD;
|
||||
if ( candidateDistance > 0.0 && candidateDistance < smallestDistance )
|
||||
for ( auto seg : segments() )
|
||||
{
|
||||
closestSegment = seg;
|
||||
smallestDistance = candidateDistance;
|
||||
// WELSEGS is reported as the midpoint of the segment
|
||||
double midpointMD = 0.5 * ( seg->startMD() + seg->endMD() );
|
||||
|
||||
// Use a signed difference to find the closest segment below the measured depth location
|
||||
double candidateDistance = measuredDepthLocation - midpointMD;
|
||||
|
||||
if ( closestSegment == nullptr )
|
||||
{
|
||||
closestSegment = seg;
|
||||
smallestDistance = std::fabs( candidateDistance );
|
||||
}
|
||||
else if ( candidateDistance > 0.0 && candidateDistance < smallestDistance )
|
||||
{
|
||||
closestSegment = seg;
|
||||
smallestDistance = std::fabs( candidateDistance );
|
||||
}
|
||||
}
|
||||
return closestSegment;
|
||||
}
|
||||
|
||||
return closestSegment;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user