mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4281 Saturation pressure plots : Delay loading of EQUIL until required
This commit is contained in:
@@ -18,6 +18,9 @@
|
||||
|
||||
#include "RimSaturationPressurePlot.h"
|
||||
|
||||
#include "RiaColorTables.h"
|
||||
#include "RiaLogging.h"
|
||||
|
||||
#include "RigCaseCellResultsData.h"
|
||||
#include "RigEclipseCaseData.h"
|
||||
#include "RigEquil.h"
|
||||
@@ -29,7 +32,6 @@
|
||||
#include "RimPlotAxisProperties.h"
|
||||
|
||||
#include "CellFilters/RimPlotCellPropertyFilter.h"
|
||||
#include "RiaColorTables.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimSaturationPressurePlot, "RimSaturationPressurePlot");
|
||||
|
||||
@@ -48,6 +50,15 @@ void RimSaturationPressurePlot::assignCaseAndEquilibriumRegion(RiaDefines::Poros
|
||||
RimEclipseResultCase* eclipseResultCase,
|
||||
int zeroBasedEquilRegionIndex)
|
||||
{
|
||||
CVF_ASSERT(eclipseResultCase && eclipseResultCase->eclipseCaseData());
|
||||
|
||||
auto equilData = eclipseResultCase->eclipseCaseData()->equilData();
|
||||
if (zeroBasedEquilRegionIndex >= equilData.size())
|
||||
{
|
||||
RiaLogging::error("Invalid equilibrium region index");
|
||||
return;
|
||||
}
|
||||
|
||||
setShowInfoBox(false);
|
||||
nameConfig()->addDataSetNames = false;
|
||||
|
||||
@@ -56,8 +67,7 @@ void RimSaturationPressurePlot::assignCaseAndEquilibriumRegion(RiaDefines::Poros
|
||||
|
||||
nameConfig()->setCustomName(plotTitle);
|
||||
|
||||
auto equilData = eclipseResultCase->eclipseCaseData()->equilData();
|
||||
auto eq = equilData[zeroBasedEquilRegionIndex];
|
||||
auto eq = equilData[zeroBasedEquilRegionIndex];
|
||||
|
||||
double gasOilContactDepth = eq.gasOilContactDepth();
|
||||
double waterOilContactDepth = eq.waterOilContactDepth();
|
||||
|
||||
@@ -74,6 +74,7 @@ std::vector<RimSaturationPressurePlot*>
|
||||
}
|
||||
}
|
||||
|
||||
eclipseResultCase->ensureDeckIsParsedForEquilData();
|
||||
std::vector<RigEquil> equilData = eclipseCaseData->equilData();
|
||||
for (size_t i = 0; i < equilData.size(); i++)
|
||||
{
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
|
||||
#include "CompletionExportCommands/RicWellPathExportCompletionDataFeatureImpl.h"
|
||||
|
||||
#include "RifReaderSettings.h"
|
||||
|
||||
#include "RigActiveCellInfo.h"
|
||||
#include "RigCaseCellResultsData.h"
|
||||
#include "RigEclipseCaseData.h"
|
||||
@@ -63,6 +65,9 @@
|
||||
#include "cafPdmUiTreeOrdering.h"
|
||||
#include "cafProgressInfo.h"
|
||||
|
||||
#include "cafUtils.h"
|
||||
#include <QFileInfo>
|
||||
|
||||
CAF_PDM_XML_ABSTRACT_SOURCE_INIT(RimEclipseCase, "RimReservoir");
|
||||
|
||||
//------------------------------------------------------------------------------------------------
|
||||
@@ -154,6 +159,33 @@ const RigEclipseCaseData* RimEclipseCase::eclipseCaseData() const
|
||||
return m_rigEclipseCase.p();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseCase::ensureDeckIsParsedForEquilData()
|
||||
{
|
||||
if (m_rigEclipseCase.notNull())
|
||||
{
|
||||
QString includeFileAbsolutePathPrefix;
|
||||
{
|
||||
RiaPreferences* prefs = RiaApplication::instance()->preferences();
|
||||
if (prefs->readerSettings())
|
||||
{
|
||||
includeFileAbsolutePathPrefix = prefs->readerSettings()->faultIncludeFileAbsolutePathPrefix();
|
||||
}
|
||||
}
|
||||
|
||||
QString dataDeckFile;
|
||||
{
|
||||
QFileInfo fi(gridFileName());
|
||||
|
||||
dataDeckFile = caf::Utils::constructFullFileName(fi.absolutePath(), fi.baseName(), ".DATA");
|
||||
}
|
||||
|
||||
m_rigEclipseCase->ensureDeckIsParsedForEquilData(dataDeckFile, includeFileAbsolutePathPrefix);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -518,7 +550,7 @@ void RimEclipseCase::computeCachedData()
|
||||
if (rigEclipseCase)
|
||||
{
|
||||
caf::ProgressInfo pInf(30, "");
|
||||
|
||||
|
||||
{
|
||||
auto task = pInf.task("", 1);
|
||||
rigEclipseCase->computeActiveCellBoundingBoxes();
|
||||
|
||||
@@ -75,6 +75,7 @@ public:
|
||||
|
||||
RigEclipseCaseData* eclipseCaseData();
|
||||
const RigEclipseCaseData* eclipseCaseData() const;
|
||||
void ensureDeckIsParsedForEquilData();
|
||||
cvf::Color3f defaultWellColor(const QString& wellName);
|
||||
|
||||
const RigMainGrid* mainGrid() const;
|
||||
|
||||
@@ -231,6 +231,8 @@ std::vector<RigEquil> RimPlotAxisAnnotation::equilItems() const
|
||||
{
|
||||
if (m_sourceCase && m_sourceCase->eclipseCaseData())
|
||||
{
|
||||
m_sourceCase->ensureDeckIsParsedForEquilData();
|
||||
|
||||
return m_sourceCase->eclipseCaseData()->equilData();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user