From 9424bdd0deda407bb9068f7d67ed9ac5b8c9396d Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Tue, 3 Dec 2019 12:58:04 +0100 Subject: [PATCH] #5158 Grid Case Group: Allow statistics on static data only Support grid cases with no dynamic data present. --- .../ProjectDataModel/RimEclipseResultCase.cpp | 5 ----- .../ProjectDataModel/RimEclipseStatisticsCase.cpp | 6 ++++++ .../RimEclipseStatisticsCaseEvaluator.cpp | 9 +++++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/RimEclipseResultCase.cpp b/ApplicationCode/ProjectDataModel/RimEclipseResultCase.cpp index 94f9c0f188..fce2afd4da 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseResultCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseResultCase.cpp @@ -291,11 +291,6 @@ bool RimEclipseResultCase::openAndReadActiveCellData( RigEclipseCaseData* mainEc eclipseCase->setMainGrid( mainEclipseCase->mainGrid() ); std::vector timeStepDates = mainEclipseCase->results( RiaDefines::MATRIX_MODEL )->timeStepDates(); - if ( timeStepDates.size() == 0 ) - { - return false; - } - cvf::ref readerEclipseOutput = new RifReaderEclipseOutput; if ( !readerEclipseOutput->openAndReadActiveCellData( caseFileName(), timeStepDates, eclipseCase.p() ) ) { diff --git a/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.cpp b/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.cpp index 954c1d4ec4..9863786af6 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.cpp @@ -252,6 +252,12 @@ void RimEclipseStatisticsCase::computeStatistics() timeStepIndices.push_back( i ); } + // If no dynamic data is present, we might end up with no time steps. Make sure we have at least one. + if ( timeStepIndices.empty() ) + { + timeStepIndices.push_back( 0 ); + } + RigEclipseCaseData* resultCase = eclipseCaseData(); QList resultSpecification; diff --git a/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCaseEvaluator.cpp b/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCaseEvaluator.cpp index bf58446473..31e39d0077 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCaseEvaluator.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCaseEvaluator.cpp @@ -36,6 +36,8 @@ #include +#include + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -57,10 +59,13 @@ void RimEclipseStatisticsCaseEvaluator::addNamedResult( RigCaseCellResultsData* destinationCellResults->setTimeStepInfos( resAddr, sourceTimeStepInfos ); std::vector>* dataValues = destinationCellResults->modifiableCellScalarResultTimesteps( resAddr ); - dataValues->resize( sourceTimeStepInfos.size() ); + + size_t timeStepCount = std::max( size_t( 1 ), sourceTimeStepInfos.size() ); + + dataValues->resize( timeStepCount ); // Initializes the size of the destination dataset to active union cell count - for ( size_t i = 0; i < sourceTimeStepInfos.size(); i++ ) + for ( size_t i = 0; i < timeStepCount; i++ ) { dataValues->at( i ).resize( activeUnionCellCount, HUGE_VAL ); }