mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#8210 Summary Import : Improve fallback strategy
This commit is contained in:
@@ -53,7 +53,7 @@ void RiaPreferencesSummary::SummaryReaderModeType::setUp()
|
||||
addItem( RiaPreferencesSummary::SummaryReaderMode::LIBECL, "LIBECL", "UNSMRY (libecl)" );
|
||||
addItem( RiaPreferencesSummary::SummaryReaderMode::HDF5_OPM_COMMON, "HDF5_OPM_COMMON", "h5 (HDF5)" );
|
||||
addItem( RiaPreferencesSummary::SummaryReaderMode::OPM_COMMON, "OPM_COMMON", "ESMRY (opm-common)" );
|
||||
setDefault( RiaPreferencesSummary::SummaryReaderMode::HDF5_OPM_COMMON );
|
||||
setDefault( RiaPreferencesSummary::SummaryReaderMode::OPM_COMMON );
|
||||
}
|
||||
} // namespace caf
|
||||
|
||||
|
||||
@@ -60,11 +60,43 @@ bool RifReaderEclipseSummary::open( const QString& headerFileName, RiaThreadSafe
|
||||
{
|
||||
bool isValid = false;
|
||||
|
||||
// Try to create readers. If HDF5 or Opm readers fails to create, use libecl reader
|
||||
// Create reader as specified by the user using the following fallback strategy
|
||||
//
|
||||
// ESMRY
|
||||
// - if h5 file is present on disk
|
||||
// - use h5 reader
|
||||
// - else
|
||||
// - create ESMRY file if defined in preference
|
||||
// - use ESMRY reader
|
||||
// - if no reader has been created, fallback to libecl
|
||||
//
|
||||
// H5
|
||||
// - if h5 file is present on disk
|
||||
// - use h5 reader
|
||||
// - else
|
||||
// - create h5 file if defined in preference
|
||||
// - use h5 reader
|
||||
// - if no reader has been created, fallback to libecl
|
||||
//
|
||||
// For all import modes, use libecl to read data if no data is imported with ESMRY or h5
|
||||
|
||||
RiaPreferencesSummary* prefSummary = RiaPreferencesSummary::current();
|
||||
|
||||
if ( prefSummary->summaryDataReader() == RiaPreferencesSummary::SummaryReaderMode::HDF5_OPM_COMMON )
|
||||
if ( prefSummary->summaryDataReader() == RiaPreferencesSummary::SummaryReaderMode::HDF5_OPM_COMMON ||
|
||||
prefSummary->summaryDataReader() == RiaPreferencesSummary::SummaryReaderMode::OPM_COMMON )
|
||||
{
|
||||
bool h5FileFound = false;
|
||||
{
|
||||
QFileInfo fi( headerFileName );
|
||||
QString basenameNoExtension = fi.absolutePath() + "/" + fi.baseName();
|
||||
|
||||
QString h5FileName = basenameNoExtension + ".h5";
|
||||
|
||||
h5FileFound = QFile::exists( h5FileName );
|
||||
}
|
||||
|
||||
if ( h5FileFound ||
|
||||
( prefSummary->summaryDataReader() == RiaPreferencesSummary::SummaryReaderMode::HDF5_OPM_COMMON ) )
|
||||
{
|
||||
#ifdef USE_HDF5
|
||||
if ( prefSummary->createH5SummaryDataFiles() )
|
||||
@@ -93,7 +125,8 @@ bool RifReaderEclipseSummary::open( const QString& headerFileName, RiaThreadSafe
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else if ( prefSummary->summaryDataReader() == RiaPreferencesSummary::SummaryReaderMode::OPM_COMMON )
|
||||
|
||||
if ( !isValid && prefSummary->summaryDataReader() == RiaPreferencesSummary::SummaryReaderMode::OPM_COMMON )
|
||||
{
|
||||
auto opmCommonReader = std::make_unique<RifOpmCommonEclipseSummary>();
|
||||
|
||||
@@ -106,8 +139,10 @@ bool RifReaderEclipseSummary::open( const QString& headerFileName, RiaThreadSafe
|
||||
m_summaryReader = std::move( opmCommonReader );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( !isValid || prefSummary->summaryDataReader() == RiaPreferencesSummary::SummaryReaderMode::LIBECL )
|
||||
// If no summary reader has been created, always try to read data using libecl
|
||||
if ( !isValid )
|
||||
{
|
||||
auto libeclReader = std::make_unique<RifEclEclipseSummary>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user