mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Added initAfterRead for case group
p4#: 20904
This commit is contained in:
parent
99159cb12d
commit
469c5a9657
@ -1306,7 +1306,7 @@ void RIApplication::updateRegressionTest(const QString& testRootPath)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
/// Make sure changes in this functions is validated to RimIdenticalGridCaseGroup::initAfterRead()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RIApplication::addEclipseCases(const QStringList& fileNames)
|
||||
{
|
||||
|
@ -26,6 +26,8 @@
|
||||
|
||||
#include "RimStatisticalCalculation.h"
|
||||
#include "RimStatisticalCollection.h"
|
||||
#include "RimResultReservoir.h"
|
||||
#include "cafProgressInfo.h"
|
||||
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimIdenticalGridCaseGroup, "RimIdenticalGridCaseGroup");
|
||||
@ -106,3 +108,55 @@ caf::PdmFieldHandle* RimIdenticalGridCaseGroup::userDescriptionField()
|
||||
return &name;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Make sure changes in this functions is validated to RIApplication::addEclipseCases()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimIdenticalGridCaseGroup::initAfterRead()
|
||||
{
|
||||
if (caseCollection()->reservoirs().size() == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// First file is read completely including grid.
|
||||
// The main grid from the first case is reused directly in for the other cases.
|
||||
// When reading active cell info, only the total cell count is tested for consistency
|
||||
RigEclipseCase* mainEclipseCase = NULL;
|
||||
|
||||
RimResultReservoir* rimReservoir = dynamic_cast<RimResultReservoir*>(caseCollection()->reservoirs()[0]);
|
||||
CVF_ASSERT(rimReservoir);
|
||||
|
||||
rimReservoir->openEclipseGridFile();
|
||||
|
||||
mainEclipseCase = rimReservoir->reservoirData();
|
||||
CVF_ASSERT(mainEclipseCase);
|
||||
|
||||
|
||||
// Read active cell info from all source cases
|
||||
caf::ProgressInfo info(caseCollection()->reservoirs().size(), "Case group - Reading Active Cell data");
|
||||
for (size_t i = 1; i < caseCollection()->reservoirs().size(); i++)
|
||||
{
|
||||
RimResultReservoir* rimReservoir = dynamic_cast<RimResultReservoir*>(caseCollection()->reservoirs()[i]);
|
||||
CVF_ASSERT(rimReservoir);
|
||||
|
||||
if (!rimReservoir->openAndReadActiveCellData(mainEclipseCase))
|
||||
{
|
||||
CVF_ASSERT(false);
|
||||
}
|
||||
|
||||
info.setProgress(i);
|
||||
}
|
||||
|
||||
|
||||
// Set main grid for statistical calculations
|
||||
for (size_t i = 0; i < statisticalReservoirCollection()->reservoirs().size(); i++)
|
||||
{
|
||||
RimStatisticalCalculation* rimReservoir = dynamic_cast<RimStatisticalCalculation*>(statisticalReservoirCollection()->reservoirs()[i]);
|
||||
CVF_ASSERT(rimReservoir);
|
||||
|
||||
rimReservoir->setMainGrid(mainEclipseCase->mainGrid());
|
||||
}
|
||||
|
||||
m_mainGrid = mainEclipseCase->mainGrid();
|
||||
}
|
||||
|
||||
|
@ -54,6 +54,7 @@ public:
|
||||
protected:
|
||||
virtual caf::PdmFieldHandle* userDescriptionField();
|
||||
|
||||
virtual void initAfterRead();
|
||||
private:
|
||||
RigMainGrid* m_mainGrid;
|
||||
};
|
||||
|
@ -89,8 +89,11 @@ RimReservoir::~RimReservoir()
|
||||
{
|
||||
reservoirViews.deleteAllChildObjects();
|
||||
|
||||
// At this point, we assume that memory should be released
|
||||
CVF_ASSERT(m_rigEclipseCase->refCount() == 1);
|
||||
if (m_rigEclipseCase.notNull())
|
||||
{
|
||||
// At this point, we assume that memory should be released
|
||||
CVF_ASSERT(m_rigEclipseCase->refCount() == 1);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -101,7 +104,11 @@ RimReservoirView* RimReservoir::createAndAddReservoirView()
|
||||
// If parent is collection, and number of views is zero, make sure rig is set to NULL to initiate normal case loading
|
||||
if (parentCaseCollection() != NULL && reservoirViews().size() == 0)
|
||||
{
|
||||
CVF_ASSERT(m_rigEclipseCase->refCount() == 1);
|
||||
if (m_rigEclipseCase.notNull())
|
||||
{
|
||||
CVF_ASSERT(m_rigEclipseCase->refCount() == 1);
|
||||
}
|
||||
|
||||
m_rigEclipseCase = NULL;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user