#14710 Compute per-time-step visible cells for dynamic data filters

A static property with an active dynamic filter now produces a contour map per time step. Adds a synthetic ensemble fixture with unified restart files, as the OPM reader used for statistics does not support per-step restart files.
This commit is contained in:
Magne Sjaastad committed 2026-09-28 10:30:12 +02:00
1 parent cf75dbf58e
commit bb8af7bbbd
19 files changed
+248 -26

No files matched your search

@@ -28,6 +28,7 @@
#include "RiaResultNames.h"
#include "RifReaderEclipseOutput.h"
#include "RifReaderOpmCommon.h"
#include "RigAllanDiagramData.h"
#include "RigAllanUtil.h"
@@ -569,19 +570,23 @@ bool RigCaseCellResultsData::hasFlowDiagUsableFluxes() const
}
//--------------------------------------------------------------------------------------------------
///
/// Time steps reported by the file reader itself, independent of which results (if any) have been
/// loaded so far. gridFileName is only needed for the opm-common reader, which requires it to locate
/// the matching restart file.
//--------------------------------------------------------------------------------------------------
std::vector<QDateTime> RigCaseCellResultsData::allTimeStepDatesFromEclipseReader() const
std::vector<QDateTime> RigCaseCellResultsData::allTimeStepDatesFromEclipseReader( const QString& gridFileName ) const
{
const RifReaderEclipseOutput* rifReaderOutput = dynamic_cast<const RifReaderEclipseOutput*>( m_readerInterface.p() );
if ( rifReaderOutput )
if ( const RifReaderEclipseOutput* rifReaderOutput = dynamic_cast<const RifReaderEclipseOutput*>( m_readerInterface.p() ) )
{
return rifReaderOutput->allTimeSteps();
}
else
if ( auto* rifReaderOpmCommon = dynamic_cast<const RifReaderOpmCommon*>( m_readerInterface.p() ) )
{
return std::vector<QDateTime>();
if ( !gridFileName.isEmpty() ) return const_cast<RifReaderOpmCommon*>( rifReaderOpmCommon )->timeStepsOnFile( gridFileName );
}
return std::vector<QDateTime>();
}
//--------------------------------------------------------------------------------------------------
@@ -107,7 +107,7 @@ public:
size_t timeStepCount( const RigEclipseResultAddress& resVarAddr ) const;
size_t maxTimeStepCount( RigEclipseResultAddress* resultAddressWithMostTimeSteps = nullptr ) const;
std::vector<QDateTime> allTimeStepDatesFromEclipseReader() const;
std::vector<QDateTime> allTimeStepDatesFromEclipseReader( const QString& gridFileName = QString() ) const;
std::vector<QDateTime> timeStepDates() const;
std::vector<QDateTime> timeStepDates( const RigEclipseResultAddress& resVarAddr ) const;
std::vector<double> daysSinceSimulationStart() const;