mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-25 14:40:26 -05:00
Improve error handling in createFilteredTimeStepInfos()
Add detailed logging and vector size checks when reading time step info from dynamic results. Now resize reportNumbersOnFile if needed, log errors on size mismatches, and always return an initialized vector. This increases robustness and aids debugging.
This commit is contained in:
1 parent
88524ac13f
commit
bda3522bd4
1 file changed
+17
-6
@@ -1083,8 +1083,6 @@ bool RifReaderEclipseOutput::dynamicResult( const QString& result
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RigEclipseTimeStepInfo> RifReaderEclipseOutput::createFilteredTimeStepInfos()
|
||||
{
|
||||
std::vector<RigEclipseTimeStepInfo> timeStepInfos;
|
||||
|
||||
if ( m_dynamicResultsAccess.notNull() )
|
||||
{
|
||||
std::vector<QDateTime> timeStepsOnFile;
|
||||
@@ -1094,9 +1092,22 @@ std::vector<RigEclipseTimeStepInfo> RifReaderEclipseOutput::createFilteredTimeSt
|
||||
m_dynamicResultsAccess->timeSteps( &timeStepsOnFile, &daysSinceSimulationStartOnFile );
|
||||
reportNumbersOnFile = m_dynamicResultsAccess->reportNumbers();
|
||||
|
||||
if ( timeStepsOnFile.size() != daysSinceSimulationStartOnFile.size() ) return timeStepInfos;
|
||||
if ( timeStepsOnFile.size() != reportNumbersOnFile.size() ) return timeStepInfos;
|
||||
if ( timeStepsOnFile.size() != daysSinceSimulationStartOnFile.size() )
|
||||
{
|
||||
RiaLogging::error( QString( "Time step count mismatch: timeStepsOnFile = %1, daysSinceSimulationStartOnFile = %2" )
|
||||
.arg( timeStepsOnFile.size() )
|
||||
.arg( daysSinceSimulationStartOnFile.size() ) );
|
||||
return {};
|
||||
}
|
||||
if ( timeStepsOnFile.size() != reportNumbersOnFile.size() )
|
||||
{
|
||||
RiaLogging::error( QString( "Time step count mismatch: timeStepsOnFile = %1, reportNumbersOnFile = %2" )
|
||||
.arg( timeStepsOnFile.size() )
|
||||
.arg( reportNumbersOnFile.size() ) );
|
||||
return {};
|
||||
}
|
||||
|
||||
std::vector<RigEclipseTimeStepInfo> timeStepInfos;
|
||||
for ( size_t i = 0; i < timeStepsOnFile.size(); i++ )
|
||||
{
|
||||
if ( isTimeStepIncludedByFilter( i ) )
|
||||
@@ -1105,9 +1116,9 @@ std::vector<RigEclipseTimeStepInfo> RifReaderEclipseOutput::createFilteredTimeSt
|
||||
RigEclipseTimeStepInfo( timeStepsOnFile[i], reportNumbersOnFile[i], daysSinceSimulationStartOnFile[i] ) );
|
||||
}
|
||||
}
|
||||
return timeStepInfos;
|
||||
}
|
||||
|
||||
return timeStepInfos;
|
||||
return {};
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user