#1693 Remove and move stuff away from RimReservoirCellResultsStorage

To make its sole responsibility to store/restore generated results to/from cache file
This commit is contained in:
Jacob Støren 2017-09-11 11:03:05 +02:00
parent 1999d2b6e4
commit 337ad4d356
9 changed files with 50 additions and 88 deletions

View File

@ -258,7 +258,7 @@ RimEclipseView* RimEclipseCase::createCopyAndAddView(const RimEclipseView* sourc
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimEclipseCase::recalculateCompletionTypeAndRedrawAllViews() void RimEclipseCase::recalculateCompletionTypeAndRedrawAllViews()
{ {
m_matrixModelResults->clearScalarResult(RiaDefines::DYNAMIC_NATIVE, RiaDefines::completionTypeResultName()); m_matrixModelResults->cellResults()->clearScalarResult(RiaDefines::DYNAMIC_NATIVE, RiaDefines::completionTypeResultName());
for (RimView* view : views()) for (RimView* view : views())
{ {
@ -417,15 +417,11 @@ void RimEclipseCase::setReservoirData(RigEclipseCaseData* eclipseCase)
{ {
m_fractureModelResults()->setCellResults(eclipseCaseData()->results(RiaDefines::FRACTURE_MODEL)); m_fractureModelResults()->setCellResults(eclipseCaseData()->results(RiaDefines::FRACTURE_MODEL));
m_matrixModelResults()->setCellResults(eclipseCaseData()->results(RiaDefines::MATRIX_MODEL)); m_matrixModelResults()->setCellResults(eclipseCaseData()->results(RiaDefines::MATRIX_MODEL));
m_fractureModelResults()->setMainGrid(this->eclipseCaseData()->mainGrid());
m_matrixModelResults()->setMainGrid(this->eclipseCaseData()->mainGrid());
} }
else else
{ {
m_fractureModelResults()->setCellResults(NULL); m_fractureModelResults()->setCellResults(NULL);
m_matrixModelResults()->setCellResults(NULL); m_matrixModelResults()->setCellResults(NULL);
m_fractureModelResults()->setMainGrid(NULL);
m_matrixModelResults()->setMainGrid(NULL);
} }
} }

View File

@ -88,8 +88,8 @@ void RimEclipseInputCase::openDataFileSet(const QStringList& fileNames)
if (fileNames.contains(RiaDefines::mockModelBasicInputCase())) if (fileNames.contains(RiaDefines::mockModelBasicInputCase()))
{ {
cvf::ref<RifReaderInterface> readerInterface = this->createMockModel(fileNames[0]); cvf::ref<RifReaderInterface> readerInterface = this->createMockModel(fileNames[0]);
results(RiaDefines::MATRIX_MODEL)->setReaderInterface(readerInterface.p()); results(RiaDefines::MATRIX_MODEL)->cellResults()->setReaderInterface(readerInterface.p());
results(RiaDefines::FRACTURE_MODEL)->setReaderInterface(readerInterface.p()); results(RiaDefines::FRACTURE_MODEL)->cellResults()->setReaderInterface(readerInterface.p());
eclipseCaseData()->activeCellInfo(RiaDefines::MATRIX_MODEL)->computeDerivedData(); eclipseCaseData()->activeCellInfo(RiaDefines::MATRIX_MODEL)->computeDerivedData();
eclipseCaseData()->activeCellInfo(RiaDefines::FRACTURE_MODEL)->computeDerivedData(); eclipseCaseData()->activeCellInfo(RiaDefines::FRACTURE_MODEL)->computeDerivedData();
@ -204,8 +204,8 @@ bool RimEclipseInputCase::openEclipseGridFile()
CVF_ASSERT(this->eclipseCaseData()); CVF_ASSERT(this->eclipseCaseData());
CVF_ASSERT(readerInterface.notNull()); CVF_ASSERT(readerInterface.notNull());
results(RiaDefines::MATRIX_MODEL)->setReaderInterface(readerInterface.p()); results(RiaDefines::MATRIX_MODEL)->cellResults()->setReaderInterface(readerInterface.p());
results(RiaDefines::FRACTURE_MODEL)->setReaderInterface(readerInterface.p()); results(RiaDefines::FRACTURE_MODEL)->cellResults()->setReaderInterface(readerInterface.p());
this->eclipseCaseData()->mainGrid()->setFlipAxis(flipXAxis, flipYAxis); this->eclipseCaseData()->mainGrid()->setFlipAxis(flipXAxis, flipYAxis);

View File

@ -179,8 +179,8 @@ bool RimEclipseResultCase::importGridAndResultMetaData(bool showTimeStepFilter)
readerInterface = readerEclipseOutput; readerInterface = readerEclipseOutput;
} }
results(RiaDefines::MATRIX_MODEL)->setReaderInterface(readerInterface.p()); results(RiaDefines::MATRIX_MODEL)->cellResults()->setReaderInterface(readerInterface.p());
results(RiaDefines::FRACTURE_MODEL)->setReaderInterface(readerInterface.p()); results(RiaDefines::FRACTURE_MODEL)->cellResults()->setReaderInterface(readerInterface.p());
progInfo.incrementProgress(); progInfo.incrementProgress();
@ -262,8 +262,8 @@ bool RimEclipseResultCase::openAndReadActiveCellData(RigEclipseCaseData* mainEcl
readerInterface = readerEclipseOutput; readerInterface = readerEclipseOutput;
} }
results(RiaDefines::MATRIX_MODEL)->setReaderInterface(readerInterface.p()); results(RiaDefines::MATRIX_MODEL)->cellResults()->setReaderInterface(readerInterface.p());
results(RiaDefines::FRACTURE_MODEL)->setReaderInterface(readerInterface.p()); results(RiaDefines::FRACTURE_MODEL)->cellResults()->setReaderInterface(readerInterface.p());
CVF_ASSERT(this->eclipseCaseData()); CVF_ASSERT(this->eclipseCaseData());
CVF_ASSERT(readerInterface.notNull()); CVF_ASSERT(readerInterface.notNull());
@ -282,11 +282,7 @@ void RimEclipseResultCase::loadAndUpdateSourSimData()
{ {
if (!results(RiaDefines::MATRIX_MODEL)) return; if (!results(RiaDefines::MATRIX_MODEL)) return;
RifReaderEclipseOutput* rifReaderOutput = dynamic_cast<RifReaderEclipseOutput*>(results(RiaDefines::MATRIX_MODEL)->readerInterface()); results(RiaDefines::MATRIX_MODEL)->cellResults()->setHdf5Filename(m_sourSimFileName);
if (rifReaderOutput)
{
rifReaderOutput->setHdf5FileName(m_sourSimFileName);
}
if (!hasSourSimFile()) if (!hasSourSimFile())
{ {

View File

@ -49,8 +49,7 @@ CAF_PDM_SOURCE_INIT(RimReservoirCellResultsStorage, "ReservoirCellResultStorage"
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimReservoirCellResultsStorage::RimReservoirCellResultsStorage() RimReservoirCellResultsStorage::RimReservoirCellResultsStorage()
: m_cellResults(NULL), : m_cellResults(NULL)
m_ownerMainGrid(NULL)
{ {
CAF_PDM_InitObject("Cacher", "", "", ""); CAF_PDM_InitObject("Cacher", "", "", "");
@ -212,33 +211,6 @@ QString RimReservoirCellResultsStorage::getCacheDirectoryPath()
return cacheDirPath; return cacheDirPath;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimReservoirCellResultsStorage::setReaderInterface(RifReaderInterface* readerInterface)
{
m_readerInterface = readerInterface;
m_cellResults->setReaderInterface(readerInterface);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RifReaderInterface* RimReservoirCellResultsStorage::readerInterface()
{
return m_readerInterface.p();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const RifReaderInterface* RimReservoirCellResultsStorage::readerInterface() const
{
return m_readerInterface.p();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -249,15 +221,6 @@ size_t RimReservoirCellResultsStorage::findOrLoadScalarResult(const QString& res
return m_cellResults->findOrLoadScalarResult(resultName); return m_cellResults->findOrLoadScalarResult(resultName);
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimReservoirCellResultsStorage::clearScalarResult(RiaDefines::ResultCatType type, const QString & resultName)
{
size_t scalarResultIndex = m_cellResults->findScalarResultIndex(type, resultName);
m_cellResults->cellScalarResults(scalarResultIndex).clear();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -364,14 +327,6 @@ void RimReservoirCellResultsStorage::setCellResults(RigCaseCellResultsData* cell
} }
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimReservoirCellResultsStorage::setMainGrid(RigMainGrid* mainGrid)
{
m_ownerMainGrid = mainGrid;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -51,20 +51,10 @@ public:
size_t storedResultsCount(); size_t storedResultsCount();
void setMainGrid(RigMainGrid* mainGrid);
void setReaderInterface(RifReaderInterface* readerInterface);
RifReaderInterface* readerInterface();
const RifReaderInterface* readerInterface() const;
void computeDepthRelatedResults();
size_t findOrLoadScalarResultForTimeStep(RiaDefines::ResultCatType type, const QString& resultName, size_t timeStepIndex); size_t findOrLoadScalarResultForTimeStep(RiaDefines::ResultCatType type, const QString& resultName, size_t timeStepIndex);
size_t findOrLoadScalarResult(RiaDefines::ResultCatType type, const QString& resultName); size_t findOrLoadScalarResult(RiaDefines::ResultCatType type, const QString& resultName);
size_t findOrLoadScalarResult(const QString& resultName); ///< Simplified search. Assumes unique names across types. size_t findOrLoadScalarResult(const QString& resultName); ///< Simplified search. Assumes unique names across types.
void clearScalarResult(RiaDefines::ResultCatType type, const QString& resultName);
protected: protected:
// Overridden methods from PdmObject // Overridden methods from PdmObject
virtual void setupBeforeSave(); virtual void setupBeforeSave();
@ -77,9 +67,7 @@ private:
caf::PdmChildArrayField<RimReservoirCellResultsStorageEntryInfo*> caf::PdmChildArrayField<RimReservoirCellResultsStorageEntryInfo*>
m_resultCacheMetaData; m_resultCacheMetaData;
cvf::ref<RifReaderInterface> m_readerInterface;
RigCaseCellResultsData* m_cellResults; RigCaseCellResultsData* m_cellResults;
RigMainGrid* m_ownerMainGrid;
}; };
class RimReservoirCellResultsStorageEntryInfo : public caf::PdmObject class RimReservoirCellResultsStorageEntryInfo : public caf::PdmObject

View File

@ -28,6 +28,7 @@
#include "cafPdmUiTextEditor.h" #include "cafPdmUiTextEditor.h"
#include <QDateTime> #include <QDateTime>
#include "RigCaseCellResultsData.h"
namespace caf { namespace caf {
@ -231,11 +232,7 @@ std::vector<QDateTime> RimTimeStepFilter::allTimeSteps() const
RimEclipseResultCase* rimEclipseResultCase = parentEclipseResultCase(); RimEclipseResultCase* rimEclipseResultCase = parentEclipseResultCase();
if (rimEclipseResultCase && rimEclipseResultCase->results(RiaDefines::MATRIX_MODEL)) if (rimEclipseResultCase && rimEclipseResultCase->results(RiaDefines::MATRIX_MODEL))
{ {
const RifReaderEclipseOutput* rifReaderOutput = dynamic_cast<const RifReaderEclipseOutput*>(rimEclipseResultCase->results(RiaDefines::MATRIX_MODEL)->readerInterface()); return rimEclipseResultCase->results(RiaDefines::MATRIX_MODEL)->cellResults()->allTimeStepDatesFromEclipseReader();
if (rifReaderOutput)
{
return rifReaderOutput->allTimeSteps();
}
} }
return m_timeStepsFromFile; return m_timeStepsFromFile;

View File

@ -84,5 +84,5 @@ private:
caf::PdmField<bool> m_applyReloadOfCase; caf::PdmField<bool> m_applyReloadOfCase;
std::vector<QDateTime> m_timeStepsFromFile; std::vector<QDateTime> m_timeStepsFromFile; /// Temporarily set to provide correct options before the case data structures are operative
}; };

View File

@ -440,6 +440,22 @@ bool RigCaseCellResultsData::hasFlowDiagUsableFluxes() const
return hasFlowFluxes; return hasFlowFluxes;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<QDateTime> RigCaseCellResultsData::allTimeStepDatesFromEclipseReader() const
{
const RifReaderEclipseOutput* rifReaderOutput = dynamic_cast<const RifReaderEclipseOutput*>(m_readerInterface.p());
if (rifReaderOutput)
{
return rifReaderOutput->allTimeSteps();
}
else
{
return std::vector<QDateTime>();
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -597,14 +613,14 @@ QString RigCaseCellResultsData::makeResultNameUnique(const QString& resultNamePr
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RigCaseCellResultsData::removeResult(const QString& resultName) void RigCaseCellResultsData::clearScalarResult(RiaDefines::ResultCatType type, const QString & resultName)
{ {
size_t resultIdx = findScalarResultIndex(resultName); size_t scalarResultIndex = this->findScalarResultIndex(type, resultName);
if (resultIdx == cvf::UNDEFINED_SIZE_T) return; if (scalarResultIndex == cvf::UNDEFINED_SIZE_T) return;
m_cellScalarResults[resultIdx].clear(); m_cellScalarResults[scalarResultIndex].clear();
m_resultInfos[resultIdx].m_resultType = RiaDefines::REMOVED; //m_resultInfos[scalarResultIndex].m_resultType = RiaDefines::REMOVED;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -2124,6 +2140,18 @@ void RigCaseCellResultsData::setReaderInterface(RifReaderInterface* readerInterf
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigCaseCellResultsData::setHdf5Filename(const QString& hdf5SourSimFilename)
{
RifReaderEclipseOutput* rifReaderOutput = dynamic_cast<RifReaderEclipseOutput*>(m_readerInterface.p());
if (rifReaderOutput)
{
rifReaderOutput->setHdf5FileName(hdf5SourSimFilename);
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// If we have any results on any time step, assume we have loaded results /// If we have any results on any time step, assume we have loaded results
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -47,6 +47,7 @@ public:
explicit RigCaseCellResultsData(RigEclipseCaseData* ownerCaseData); explicit RigCaseCellResultsData(RigEclipseCaseData* ownerCaseData);
void setReaderInterface(RifReaderInterface* readerInterface); void setReaderInterface(RifReaderInterface* readerInterface);
void setHdf5Filename(const QString& hdf5SourSimFilename );
void setMainGrid(RigMainGrid* ownerGrid); void setMainGrid(RigMainGrid* ownerGrid);
void setActiveCellInfo(RigActiveCellInfo* activeCellInfo) { m_activeCellInfo = activeCellInfo;} void setActiveCellInfo(RigActiveCellInfo* activeCellInfo) { m_activeCellInfo = activeCellInfo;}
@ -77,6 +78,7 @@ public:
bool isUsingGlobalActiveIndex(size_t scalarResultIndex) const; bool isUsingGlobalActiveIndex(size_t scalarResultIndex) const;
bool hasFlowDiagUsableFluxes() const; bool hasFlowDiagUsableFluxes() const;
std::vector<QDateTime> allTimeStepDatesFromEclipseReader() const;
std::vector<QDateTime> timeStepDates() const; std::vector<QDateTime> timeStepDates() const;
QDateTime timeStepDate(size_t scalarResultIndex, size_t timeStepIndex) const; QDateTime timeStepDate(size_t scalarResultIndex, size_t timeStepIndex) const;
std::vector<QDateTime> timeStepDates(size_t scalarResultIndex) const; std::vector<QDateTime> timeStepDates(size_t scalarResultIndex) const;
@ -103,7 +105,7 @@ public:
void createPlaceholderResultEntries(); void createPlaceholderResultEntries();
void computeDepthRelatedResults(); void computeDepthRelatedResults();
void removeResult(const QString& resultName); void clearScalarResult(RiaDefines::ResultCatType type, const QString & resultName);
void clearAllResults(); void clearAllResults();
void freeAllocatedResultsData(); void freeAllocatedResultsData();