Improved multi case initial reading

When creating a multi case group from multiple files, read grid from first file.
The main grid from the first case is reused for the other cases.
NOTE: Metadata and well information is not read for the other cases
p4#: 20655
This commit is contained in:
Magne Sjaastad
2013-02-27 15:27:33 +01:00
parent 3dc027e29e
commit 3dbc8a9d57
6 changed files with 103 additions and 22 deletions

View File

@@ -90,6 +90,51 @@ bool RimResultReservoir::openEclipseGridFile()
return true;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimResultReservoir::openAndReadActiveCellData(RigMainGrid* mainGrid)
{
cvf::ref<RifReaderInterface> readerInterface;
if (caseName().contains("Result Mock Debug Model"))
{
readerInterface = this->createMockModel(this->caseName());
m_rigEclipseCase->results(RifReaderInterface::MATRIX_RESULTS)->setReaderInterface(readerInterface.p());
m_rigEclipseCase->results(RifReaderInterface::FRACTURE_RESULTS)->setReaderInterface(readerInterface.p());
}
else
{
QString fname = createAbsoluteFilenameFromCase(caseName);
if (fname.isEmpty())
{
return false;
}
cvf::ref<RigEclipseCase> eclipseCase = new RigEclipseCase;
eclipseCase->setMainGrid(mainGrid);
readerInterface = new RifReaderEclipseOutput;
if (!readerInterface->openAndReadActiveCellData(fname, eclipseCase.p()))
{
return false;
}
readerInterface->close();
m_rigEclipseCase = eclipseCase;
}
CVF_ASSERT(m_rigEclipseCase.notNull());
CVF_ASSERT(readerInterface.notNull());
m_rigEclipseCase->computeCachedData();
return true;
}
//--------------------------------------------------------------------------------------------------
///

View File

@@ -24,7 +24,8 @@
#include "cafPdmObject.h"
#include "RimReservoir.h"
class RifReaderInterface;
class RifReaderInterface;
class RigMainGrid;
//==================================================================================================
//
@@ -45,6 +46,7 @@ public:
caf::PdmField<QString> caseDirectory;
virtual bool openEclipseGridFile();
bool openAndReadActiveCellData(RigMainGrid* mainGrid);
//virtual caf::PdmFieldHandle* userDescriptionField() { return &caseName;}