mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#7442 Create LGR : Segfault when no dynamic data is present
This fix will also display eperforations when no dynamic data is present https://github.com/OPM/ResInsight/issues/6911
This commit is contained in:
@@ -378,7 +378,12 @@ const RigVirtualPerforationTransmissibilities* RimEclipseCase::computeAndGetVirt
|
|||||||
{
|
{
|
||||||
std::vector<std::vector<RigCompletionData>> allCompletionData;
|
std::vector<std::vector<RigCompletionData>> allCompletionData;
|
||||||
|
|
||||||
for ( size_t i = 0; i < timeStepDates().size(); i++ )
|
size_t maxIndexCount = 1;
|
||||||
|
if ( !timeStepDates().empty() )
|
||||||
|
{
|
||||||
|
maxIndexCount = timeStepDates().size();
|
||||||
|
}
|
||||||
|
for ( size_t i = 0; i < maxIndexCount; i++ )
|
||||||
{
|
{
|
||||||
std::vector<RigCompletionData> dynamicCompletionDataOneTimeStep =
|
std::vector<RigCompletionData> dynamicCompletionDataOneTimeStep =
|
||||||
RicWellPathExportCompletionDataFeatureImpl::computeDynamicCompletionsForWellPath( w, this, i );
|
RicWellPathExportCompletionDataFeatureImpl::computeDynamicCompletionsForWellPath( w, this, i );
|
||||||
|
|||||||
@@ -102,20 +102,24 @@ const std::map<size_t, std::vector<RigCompletionData>>&
|
|||||||
RigVirtualPerforationTransmissibilities::multipleCompletionsPerEclipseCell( const RimWellPath* wellPath,
|
RigVirtualPerforationTransmissibilities::multipleCompletionsPerEclipseCell( const RimWellPath* wellPath,
|
||||||
size_t timeStepIndex ) const
|
size_t timeStepIndex ) const
|
||||||
{
|
{
|
||||||
static std::map<size_t, std::vector<RigCompletionData>> dummy;
|
|
||||||
|
|
||||||
auto item = m_mapFromWellToCompletionData.find( wellPath );
|
auto item = m_mapFromWellToCompletionData.find( wellPath );
|
||||||
if ( item != m_mapFromWellToCompletionData.end() )
|
if ( item != m_mapFromWellToCompletionData.end() )
|
||||||
{
|
{
|
||||||
size_t indexToUse = timeStepIndex;
|
const std::vector<CompletionDataFrame>& completionData = item->second;
|
||||||
if ( item->second.size() == 1 )
|
size_t tsIndexToUse = timeStepIndex;
|
||||||
|
if ( completionData.size() == 1 )
|
||||||
{
|
{
|
||||||
indexToUse = 0;
|
// Clamp to zero if we only have one time step (static case)
|
||||||
|
tsIndexToUse = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return item->second[indexToUse].multipleCompletionsPerEclipseCell();
|
if ( tsIndexToUse < completionData.size() )
|
||||||
|
{
|
||||||
|
return completionData[tsIndexToUse].multipleCompletionsPerEclipseCell();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::map<size_t, std::vector<RigCompletionData>> dummy;
|
||||||
return dummy;
|
return dummy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user