mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
MSW : Make sure the ICV is using the full perforation interval #6152
This commit is contained in:
parent
277ff167a3
commit
63f964da82
@ -264,12 +264,21 @@ std::vector<std::pair<double, double>> RimWellPathValve::valveSegments() const
|
|||||||
RimPerforationInterval* perforationInterval = nullptr;
|
RimPerforationInterval* perforationInterval = nullptr;
|
||||||
this->firstAncestorOrThisOfType( perforationInterval );
|
this->firstAncestorOrThisOfType( perforationInterval );
|
||||||
|
|
||||||
|
std::vector<std::pair<double, double>> segments;
|
||||||
|
if ( componentType() == RiaDefines::WellPathComponentType::ICV )
|
||||||
|
{
|
||||||
|
// Flow for ICV is defined as the complete perforation interval
|
||||||
|
|
||||||
|
segments.push_back( std::make_pair( perforationInterval->startMD(), perforationInterval->endMD() ) );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// ICD/AICD : Use the valve start/end, can be a subset of perforation interval
|
||||||
|
|
||||||
double startMD = this->startMD();
|
double startMD = this->startMD();
|
||||||
double endMD = this->endMD();
|
double endMD = this->endMD();
|
||||||
|
|
||||||
std::vector<double> valveMDs = valveLocations();
|
std::vector<double> valveMDs = valveLocations();
|
||||||
|
|
||||||
std::vector<std::pair<double, double>> segments;
|
|
||||||
segments.reserve( valveMDs.size() );
|
segments.reserve( valveMDs.size() );
|
||||||
|
|
||||||
for ( size_t i = 0; i < valveMDs.size(); ++i )
|
for ( size_t i = 0; i < valveMDs.size(); ++i )
|
||||||
@ -286,6 +295,8 @@ std::vector<std::pair<double, double>> RimWellPathValve::valveSegments() const
|
|||||||
}
|
}
|
||||||
segments.push_back( std::make_pair( segmentStart, segmentEnd ) );
|
segments.push_back( std::make_pair( segmentStart, segmentEnd ) );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return segments;
|
return segments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user