#4281 Saturation pressure plots : Delay loading of EQUIL until required

This commit is contained in:
Magne Sjaastad
2019-04-04 15:19:30 +02:00
parent 733be4f539
commit a812190af3
10 changed files with 108 additions and 58 deletions

View File

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

View File

@@ -74,6 +74,7 @@ std::vector<RimSaturationPressurePlot*>
}
}
eclipseResultCase->ensureDeckIsParsedForEquilData();
std::vector<RigEquil> equilData = eclipseCaseData->equilData();
for (size_t i = 0; i < equilData.size(); i++)
{

View File

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

View File

@@ -75,6 +75,7 @@ public:
RigEclipseCaseData* eclipseCaseData();
const RigEclipseCaseData* eclipseCaseData() const;
void ensureDeckIsParsedForEquilData();
cvf::Color3f defaultWellColor(const QString& wellName);
const RigMainGrid* mainGrid() const;

View File

@@ -231,6 +231,8 @@ std::vector<RigEquil> RimPlotAxisAnnotation::equilItems() const
{
if (m_sourceCase && m_sourceCase->eclipseCaseData())
{
m_sourceCase->ensureDeckIsParsedForEquilData();
return m_sourceCase->eclipseCaseData()->equilData();
}