From e7edb34404f0c570a2ef3859445f51fa40b8d08f Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Tue, 12 Nov 2019 17:47:41 +0100 Subject: [PATCH 1/3] #5031 Summary Data Cache : Remove static set of instances --- .../RicSummaryCurveCreatorDialog.cpp | 1 - .../FileInterface/RifReaderEclipseSummary.cpp | 32 ++----------------- .../FileInterface/RifReaderEclipseSummary.h | 6 +--- 3 files changed, 4 insertions(+), 35 deletions(-) diff --git a/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreatorDialog.cpp b/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreatorDialog.cpp index ee4662102d..0f4b59a0ba 100644 --- a/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreatorDialog.cpp +++ b/ApplicationCode/Commands/SummaryPlotCommands/RicSummaryCurveCreatorDialog.cpp @@ -84,5 +84,4 @@ void RicSummaryCurveCreatorDialog::slotDialogFinished() { plotwindow->cleanUpTemporaryWidgets(); } - RifReaderEclipseSummary::purgeCache(); } diff --git a/ApplicationCode/FileInterface/RifReaderEclipseSummary.cpp b/ApplicationCode/FileInterface/RifReaderEclipseSummary.cpp index fec6599481..5b78dd74cf 100644 --- a/ApplicationCode/FileInterface/RifReaderEclipseSummary.cpp +++ b/ApplicationCode/FileInterface/RifReaderEclipseSummary.cpp @@ -570,14 +570,6 @@ void RifReaderEclipseSummary::markForCachePurge( const RifEclipseSummaryAddress& m_valuesCache->markAddressForPurge( address ); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RifReaderEclipseSummary::purgeCache() -{ - ValuesCache::purge(); -} - #if 0 //-------------------------------------------------------------------------------------------------- /// @@ -597,26 +589,17 @@ void RifReaderEclipseSummary::populateVectorFromStringList(stringlist_type* stri //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -const std::vector RifReaderEclipseSummary::ValuesCache::EMPTY_VECTOR; -std::set RifReaderEclipseSummary::ValuesCache::m_instances; +const std::vector RifReaderEclipseSummary::ValuesCache::EMPTY_VECTOR; //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RifReaderEclipseSummary::ValuesCache::ValuesCache() -{ - // Register instance - m_instances.insert( this ); -} +RifReaderEclipseSummary::ValuesCache::ValuesCache() {} //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RifReaderEclipseSummary::ValuesCache::~ValuesCache() -{ - // Deregister instance - m_instances.erase( this ); -} +RifReaderEclipseSummary::ValuesCache::~ValuesCache() {} //-------------------------------------------------------------------------------------------------- /// @@ -648,15 +631,6 @@ void RifReaderEclipseSummary::ValuesCache::markAddressForPurge( const RifEclipse m_purgeList.insert( address ); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RifReaderEclipseSummary::ValuesCache::purge() -{ - for ( auto instance : m_instances ) - instance->purgeData(); -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/FileInterface/RifReaderEclipseSummary.h b/ApplicationCode/FileInterface/RifReaderEclipseSummary.h index 4e8abecdc0..412ac5d6d4 100644 --- a/ApplicationCode/FileInterface/RifReaderEclipseSummary.h +++ b/ApplicationCode/FileInterface/RifReaderEclipseSummary.h @@ -84,8 +84,7 @@ public: return m_warnings; } - void markForCachePurge( const RifEclipseSummaryAddress& address ) override; - static void purgeCache(); + void markForCachePurge( const RifEclipseSummaryAddress& address ) override; private: int timeStepCount() const; @@ -122,15 +121,12 @@ private: void insertValues( const RifEclipseSummaryAddress& address, const std::vector& values ); const std::vector& getValues( const RifEclipseSummaryAddress& address ) const; void markAddressForPurge( const RifEclipseSummaryAddress& address ); - static void purge(); private: void purgeData(); std::map> m_cachedValues; std::set m_purgeList; - - static std::set m_instances; }; std::unique_ptr m_valuesCache; From 2b8219a855ef64d60f9c672c1dbc9c54102a8349 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Tue, 12 Nov 2019 18:25:38 +0100 Subject: [PATCH 2/3] #5031 Summary Data : Make sure the reader is created in constructor --- .../Summary/RimFileSummaryCase.cpp | 29 +++++-------------- .../Summary/RimFileSummaryCase.h | 4 +-- .../Summary/RimGridSummaryCase.cpp | 8 +++-- 3 files changed, 15 insertions(+), 26 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/Summary/RimFileSummaryCase.cpp b/ApplicationCode/ProjectDataModel/Summary/RimFileSummaryCase.cpp index 67671726bf..b5f9c74096 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimFileSummaryCase.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimFileSummaryCase.cpp @@ -44,6 +44,8 @@ RimFileSummaryCase::RimFileSummaryCase() CAF_PDM_InitField( &m_includeRestartFiles, "IncludeRestartFiles", false, "Include Restart Files", "", "", "" ); m_includeRestartFiles.uiCapability()->setUiHidden( true ); + + m_summaryFileReader = new RifReaderEclipseSummary; } //-------------------------------------------------------------------------------------------------- @@ -83,8 +85,12 @@ void RimFileSummaryCase::updateFilePathsFromProjectPath( const QString& newProje //-------------------------------------------------------------------------------------------------- void RimFileSummaryCase::createSummaryReaderInterface() { - m_summaryFileReader = RimFileSummaryCase::findRelatedFilesAndCreateReader( this->summaryHeaderFilename(), - m_includeRestartFiles ); + if ( !m_summaryFileReader->open( this->summaryHeaderFilename(), m_includeRestartFiles ) ) + { + RiaLogging::warning( QString( "Failed to open summary file %1" ).arg( this->summaryHeaderFilename() ) ); + + m_summaryFileReader = nullptr; + } } //-------------------------------------------------------------------------------------------------- @@ -99,25 +105,6 @@ void RimFileSummaryCase::createRftReaderInterface() } } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -RifReaderEclipseSummary* RimFileSummaryCase::findRelatedFilesAndCreateReader( const QString& headerFileName, - bool includeRestartFiles ) -{ - RifReaderEclipseSummary* summaryFileReader = new RifReaderEclipseSummary; - - if ( !summaryFileReader->open( headerFileName, includeRestartFiles ) ) - { - RiaLogging::warning( QString( "Failed to open summary file %1" ).arg( headerFileName ) ); - - delete summaryFileReader; - summaryFileReader = nullptr; - } - - return summaryFileReader; -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/Summary/RimFileSummaryCase.h b/ApplicationCode/ProjectDataModel/Summary/RimFileSummaryCase.h index 902bb5dfe0..9b33930fe6 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimFileSummaryCase.h +++ b/ApplicationCode/ProjectDataModel/Summary/RimFileSummaryCase.h @@ -50,9 +50,7 @@ public: void setIncludeRestartFiles( bool includeRestartFiles ); - static RifReaderEclipseSummary* findRelatedFilesAndCreateReader( const QString& headerFileName, - bool includeRestartFiles ); - static RifReaderEclipseRft* findRftDataAndCreateReader( const QString& headerFileName ); + static RifReaderEclipseRft* findRftDataAndCreateReader( const QString& headerFileName ); private: cvf::ref m_summaryFileReader; diff --git a/ApplicationCode/ProjectDataModel/Summary/RimGridSummaryCase.cpp b/ApplicationCode/ProjectDataModel/Summary/RimGridSummaryCase.cpp index c5f5eac66e..c980f11fa2 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimGridSummaryCase.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimGridSummaryCase.cpp @@ -52,6 +52,8 @@ RimGridSummaryCase::RimGridSummaryCase() CAF_PDM_InitField( &m_includeRestartFiles, "IncludeRestartFiles", false, "Include Restart Files", "", "", "" ); m_includeRestartFiles.uiCapability()->setUiHidden( true ); + + m_summaryFileReader = new RifReaderEclipseSummary; } //-------------------------------------------------------------------------------------------------- @@ -173,8 +175,10 @@ void RimGridSummaryCase::updateFilePathsFromProjectPath( const QString& newProje //-------------------------------------------------------------------------------------------------- void RimGridSummaryCase::createSummaryReaderInterface() { - m_summaryFileReader = RimFileSummaryCase::findRelatedFilesAndCreateReader( this->summaryHeaderFilename(), - m_includeRestartFiles ); + if ( !m_summaryFileReader->open( this->summaryHeaderFilename(), m_includeRestartFiles ) ) + { + m_summaryFileReader = nullptr; + } } //-------------------------------------------------------------------------------------------------- From 280f8c1d458b4f2b940c9c7143e752855c789fae Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Tue, 12 Nov 2019 18:26:47 +0100 Subject: [PATCH 3/3] #5031 Summary Data : Only use openMP on open of summary file --- .../Summary/RimSummaryCaseMainCollection.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp index 3a3514fc1c..e1c046ed81 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp @@ -399,6 +399,7 @@ void RimSummaryCaseMainCollection::loadFileSummaryCaseData( std::vector( fileSummaryCases.size() ); ++cIdx ) @@ -407,6 +408,14 @@ void RimSummaryCaseMainCollection::loadFileSummaryCaseData( std::vectorcreateSummaryReaderInterface(); + } + } + + for ( int cIdx = 0; cIdx < static_cast( fileSummaryCases.size() ); ++cIdx ) + { + RimFileSummaryCase* fileSummaryCase = fileSummaryCases[cIdx]; + if ( fileSummaryCase ) + { fileSummaryCase->createRftReaderInterface(); addCaseRealizationParametersIfFound( *fileSummaryCase, fileSummaryCase->summaryHeaderFilename() ); }