#2962 Summary import performance. Preliminary optimization of summary groups and ensemble import

This commit is contained in:
Bjørn Erik Jensen
2018-06-06 09:49:46 +02:00
parent 3cf35f673a
commit 11aeda63d9
8 changed files with 37 additions and 30 deletions

View File

@@ -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);

View File

@@ -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();

View File

@@ -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);

View File

@@ -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);

View File

@@ -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)

View File

@@ -65,6 +65,7 @@ public:
const QString& initialGridFile,
bool failOnSummaryImportError,
bool showApplyToAllWidget,
bool useFirstSummaryCaseAsTemplate,
ImportOptions defaultSummaryImportOption,
ImportOptions defaultGridImportOption,
RicSummaryCaseRestartDialogResult *lastResult = nullptr,

View File

@@ -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)
{

View File

@@ -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;