mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2962 Summary import performance. Preliminary optimization of summary groups and ensemble import
This commit is contained in:
@@ -125,7 +125,7 @@ void RicImportEnsembleFeature::onActionTriggered(bool isChecked)
|
||||
if (ensembleName.isEmpty()) return;
|
||||
|
||||
std::vector<RimSummaryCase*> cases;
|
||||
RicImportSummaryCasesFeature::createSummaryCasesFromFiles(fileNames, &cases);
|
||||
RicImportSummaryCasesFeature::createSummaryCasesFromFiles(fileNames, &cases, true);
|
||||
|
||||
validateEnsembleCases(cases);
|
||||
|
||||
|
||||
@@ -145,7 +145,8 @@ bool RicImportSummaryCasesFeature::createAndAddSummaryCasesFromFiles(const QStri
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RicImportSummaryCasesFeature::createSummaryCasesFromFiles(const QStringList& fileNames,
|
||||
std::vector<RimSummaryCase*>* newCases)
|
||||
std::vector<RimSummaryCase*>* newCases,
|
||||
bool ensembleOrGroup)
|
||||
{
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RimProject* proj = app->project();
|
||||
@@ -155,6 +156,7 @@ bool RicImportSummaryCasesFeature::createSummaryCasesFromFiles(const QStringList
|
||||
if (!sumCaseColl) return false;
|
||||
|
||||
RifSummaryCaseRestartSelector fileSelector;
|
||||
fileSelector.setEnsembleOrGroupMode(ensembleOrGroup);
|
||||
fileSelector.determineFilesToImportFromSummaryFiles(fileNames);
|
||||
|
||||
std::vector<RifSummaryCaseFileResultInfo> importFileInfos = fileSelector.summaryFileInfos();
|
||||
|
||||
@@ -39,7 +39,7 @@ public:
|
||||
RicImportSummaryCasesFeature() { }
|
||||
|
||||
static bool createAndAddSummaryCasesFromFiles(const QStringList& fileName, std::vector<RimSummaryCase*>* newCases = nullptr);
|
||||
static bool createSummaryCasesFromFiles(const QStringList& fileName, std::vector<RimSummaryCase*>* newCases);
|
||||
static bool createSummaryCasesFromFiles(const QStringList& fileName, std::vector<RimSummaryCase*>* newCases, bool ensembleOrGroup = false);
|
||||
static void addSummaryCases(const std::vector<RimSummaryCase*> cases);
|
||||
static void addCasesToGroupIfRelevant(const std::vector<RimSummaryCase*> cases);
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ void RicImportSummaryGroupFeature::onActionTriggered(bool isChecked)
|
||||
if (fileNames.isEmpty()) return;
|
||||
|
||||
std::vector<RimSummaryCase*> cases;
|
||||
RicImportSummaryCasesFeature::createSummaryCasesFromFiles(fileNames, &cases);
|
||||
RicImportSummaryCasesFeature::createSummaryCasesFromFiles(fileNames, &cases, true);
|
||||
|
||||
RicImportSummaryCasesFeature::addSummaryCases(cases);
|
||||
RicCreateSummaryCaseCollectionFeature::groupSummaryCases(cases, "", false);
|
||||
|
||||
@@ -246,11 +246,24 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
|
||||
const QString& initialGridFile,
|
||||
bool failOnSummaryImportError,
|
||||
bool showApplyToAllWidget,
|
||||
bool useFirstSummaryCaseAsTemplate,
|
||||
ImportOptions defaultSummaryImportOption,
|
||||
ImportOptions defaultGridImportOption,
|
||||
RicSummaryCaseRestartDialogResult* lastResult,
|
||||
QWidget* parent)
|
||||
{
|
||||
RicSummaryCaseRestartDialogResult dialogResult;
|
||||
if (lastResult && lastResult->applyToAll && lastResult->summaryImportOption != SEPARATE_CASES)
|
||||
{
|
||||
dialogResult = *lastResult;
|
||||
dialogResult.summaryFiles.clear();
|
||||
dialogResult.gridFiles.clear();
|
||||
|
||||
if (!initialSummaryFile.isEmpty()) dialogResult.summaryFiles.push_back(initialSummaryFile);
|
||||
if (!initialGridFile.isEmpty()) dialogResult.gridFiles.push_back(initialGridFile);
|
||||
return dialogResult;
|
||||
}
|
||||
|
||||
RicSummaryCaseRestartDialog dialog(parent);
|
||||
bool handleSummaryFile = false;
|
||||
|
||||
@@ -288,11 +301,9 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
|
||||
defaultGridImportOption,
|
||||
{},
|
||||
QStringList({ initialGridFile }),
|
||||
lastResult && lastResult->applyToAll);
|
||||
useFirstSummaryCaseAsTemplate || (lastResult && lastResult->applyToAll));
|
||||
}
|
||||
|
||||
|
||||
|
||||
RifReaderEclipseSummary reader;
|
||||
bool hasWarnings = false;
|
||||
std::vector<RifRestartFileInfo> originFileInfos = reader.getRestartFiles(initialSummaryFile, &hasWarnings);
|
||||
@@ -303,10 +314,9 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
|
||||
return RicSummaryCaseRestartDialogResult(RicSummaryCaseRestartDialogResult::SUMMARY_OK, NOT_IMPORT, NOT_IMPORT,
|
||||
QStringList({ initialSummaryFile }),
|
||||
QStringList({ initialGridFile }),
|
||||
lastResult->applyToAll);
|
||||
useFirstSummaryCaseAsTemplate || lastResult->applyToAll);
|
||||
}
|
||||
|
||||
RicSummaryCaseRestartDialogResult dialogResult;
|
||||
if (lastResult && lastResult->applyToAll)
|
||||
{
|
||||
dialogResult = *lastResult;
|
||||
@@ -385,7 +395,7 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
|
||||
|
||||
// Set properties and show dialog
|
||||
dialog.setWindowTitle("Origin Files");
|
||||
dialog.m_buttons->button(QDialogButtonBox::Apply)->setVisible(showApplyToAllWidget);
|
||||
dialog.m_buttons->button(QDialogButtonBox::Apply)->setVisible(!useFirstSummaryCaseAsTemplate && showApplyToAllWidget);
|
||||
dialog.resize(DEFAULT_DIALOG_WIDTH, DEFAULT_DIALOG_INIT_HEIGHT);
|
||||
|
||||
QApplication::setOverrideCursor(QCursor(Qt::ArrowCursor));
|
||||
@@ -404,7 +414,7 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
|
||||
dialog.selectedGridImportOption(),
|
||||
{},
|
||||
{},
|
||||
dialog.okToAllSelected());
|
||||
useFirstSummaryCaseAsTemplate || dialog.okToAllSelected());
|
||||
}
|
||||
|
||||
if (dialogResult.status != RicSummaryCaseRestartDialogResult::SUMMARY_OK)
|
||||
|
||||
@@ -65,6 +65,7 @@ public:
|
||||
const QString& initialGridFile,
|
||||
bool failOnSummaryImportError,
|
||||
bool showApplyToAllWidget,
|
||||
bool useFirstSummaryCaseAsTemplate,
|
||||
ImportOptions defaultSummaryImportOption,
|
||||
ImportOptions defaultGridImportOption,
|
||||
RicSummaryCaseRestartDialogResult *lastResult = nullptr,
|
||||
|
||||
@@ -124,6 +124,14 @@ void RifSummaryCaseRestartSelector::showDialog(bool show)
|
||||
m_showDialog = show;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RifSummaryCaseRestartSelector::setEnsembleOrGroupMode(bool eogMode)
|
||||
{
|
||||
m_ensembleOrGroupMode = eogMode;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -176,6 +184,7 @@ void RifSummaryCaseRestartSelector::determineFilesToImportByAskingUser(const std
|
||||
initialFile.gridFileName(),
|
||||
initialFile.failOnSummaryFileError(),
|
||||
enableApplyToAllField,
|
||||
m_ensembleOrGroupMode,
|
||||
m_defaultSummaryImportMode,
|
||||
m_defaultGridImportMode,
|
||||
&lastResult);
|
||||
@@ -237,27 +246,9 @@ void RifSummaryCaseRestartSelector::determineFilesToImportUsingPrefs(const std::
|
||||
{
|
||||
QString initialSummaryFile = RiaFilePathTools::toInternalSeparator(initialFile.summaryFileName());
|
||||
QString initialGridFile = RiaFilePathTools::toInternalSeparator(initialFile.gridFileName());
|
||||
bool handleSummaryFile = false;
|
||||
bool handleSummaryFile = !initialSummaryFile.isEmpty();
|
||||
bool handleGridFile = !initialGridFile.isEmpty();
|
||||
|
||||
RifReaderEclipseSummary reader;
|
||||
if (!initialSummaryFile.isEmpty())
|
||||
{
|
||||
RifRestartFileInfo fileInfo = reader.getFileInfo(initialSummaryFile);
|
||||
if (!fileInfo.valid())
|
||||
{
|
||||
m_summaryFileErrors.push_back(initialSummaryFile);
|
||||
if (initialFile.failOnSummaryFileError())
|
||||
{
|
||||
handleGridFile = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
handleSummaryFile = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (handleSummaryFile)
|
||||
{
|
||||
if (m_defaultSummaryImportMode == RicSummaryCaseRestartDialog::IMPORT_ALL)
|
||||
@@ -272,6 +263,7 @@ void RifSummaryCaseRestartSelector::determineFilesToImportUsingPrefs(const std::
|
||||
{
|
||||
m_summaryFileInfos.push_back(RifSummaryCaseFileResultInfo(initialSummaryFile, false));
|
||||
bool hasWarnings = false;
|
||||
RifReaderEclipseSummary reader;
|
||||
std::vector<RifRestartFileInfo> restartFileInfos = reader.getRestartFiles(initialSummaryFile, &hasWarnings);
|
||||
for (const auto& rfi : restartFileInfos)
|
||||
{
|
||||
|
||||
@@ -44,6 +44,7 @@ public:
|
||||
void determineFilesToImportFromGridFiles(const QStringList& initialGridFiles);
|
||||
|
||||
void showDialog(bool show);
|
||||
void setEnsembleOrGroupMode(bool eogMode);
|
||||
std::vector<RifSummaryCaseFileResultInfo> summaryFileInfos() const;
|
||||
QStringList gridCaseFiles() const;
|
||||
bool foundErrors() const;
|
||||
@@ -59,6 +60,7 @@ private:
|
||||
void determineFilesToImportUsingPrefs(const std::vector<RifSummaryCaseFileImportInfo>& initialFiles);
|
||||
|
||||
bool m_showDialog;
|
||||
bool m_ensembleOrGroupMode;
|
||||
RicSummaryCaseRestartDialog::ImportOptions m_defaultSummaryImportMode;
|
||||
RicSummaryCaseRestartDialog::ImportOptions m_defaultGridImportMode;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user