#4434 Flow Diag adjustments : Use active cells from PORV in Flow Diag

This commit is contained in:
Magne Sjaastad 2019-06-18 10:58:07 +02:00
parent aa0c372336
commit ff16156c2a
4 changed files with 35 additions and 6 deletions

View File

@ -83,6 +83,13 @@ public:
std::set<RiaDefines::PhaseType> availablePhases() const override;
// Load main, it is up to the consumer to release the memory using
//
// ecl_grid_type* myGrid = loadMainGrid();
// free(myGrid);
//
ecl_grid_type* loadMainGrid() const;
private:
bool readActiveCellInfo();
void buildMetaData(ecl_grid_type* grid);
@ -108,8 +115,6 @@ private:
static bool isEclipseAndSoursimTimeStepsEqual(const QDateTime& eclipseDateTime, const QDateTime& sourSimDateTime);
ecl_grid_type* loadMainGrid() const;
private:
QString m_fileName; // Name of file used to start accessing Eclipse output files
QStringList m_filesWithSameBaseName; // Set of files in filename's path with same base name as filename

View File

@ -2639,6 +2639,14 @@ void RigCaseCellResultsData::setReaderInterface(RifReaderInterface* readerInterf
m_readerInterface = readerInterface;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const RifReaderInterface* RigCaseCellResultsData::readerInterface() const
{
return m_readerInterface.p();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -57,6 +57,7 @@ public:
// Initialization
void setReaderInterface(RifReaderInterface* readerInterface);
const RifReaderInterface* readerInterface() const;
void setHdf5Filename(const QString& hdf5SourSimFilename );
void setActiveFormationNames(RigFormationNames* activeFormationNames);
RigFormationNames* activeFormationNames();

View File

@ -21,6 +21,7 @@
#include "RiaLogging.h"
#include "RifEclipseOutputFileTools.h"
#include "RifReaderEclipseOutput.h"
#include "RifReaderInterface.h"
#include "RigActiveCellInfo.h"
@ -121,11 +122,11 @@ void RigFlowDiagTimeStepResult::addResult(const RigFlowDiagResultAddress& resAdd
class RigOpmFlowDiagStaticData : public cvf::Object
{
public:
RigOpmFlowDiagStaticData(const std::string& grid, const std::string& init, RiaEclipseUnitTools::UnitSystem caseUnitSystem)
RigOpmFlowDiagStaticData(const ecl_grid_type* mainGrid, const std::string& init, RiaEclipseUnitTools::UnitSystem caseUnitSystem)
{
Opm::ECLInitFileData initData(init);
m_eclGraph.reset(new Opm::ECLGraph(Opm::ECLGraph::load(grid, initData)));
m_eclGraph.reset(new Opm::ECLGraph(Opm::ECLGraph::load(mainGrid, initData)));
m_hasUnifiedRestartFile = false;
m_poreVolume = m_eclGraph->poreVolume();
@ -518,8 +519,22 @@ bool RigFlowDiagSolverInterface::ensureStaticDataObjectInstanceCreated()
return false;
}
RiaEclipseUnitTools::UnitSystem caseUnitSystem = eclipseCaseData->unitsType();
m_opmFlowDiagStaticData = new RigOpmFlowDiagStaticData(gridFileName.toStdString(), initFileName, caseUnitSystem);
//ecl_grid_type* mainGrid = eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->readerInterface();
auto fileReader = eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->readerInterface();
auto eclOutput = dynamic_cast<const RifReaderEclipseOutput*>(fileReader);
if (eclOutput)
{
ecl_grid_type* mainGrid = eclOutput->loadMainGrid();
if (!mainGrid)
{
return false;
}
RiaEclipseUnitTools::UnitSystem caseUnitSystem = eclipseCaseData->unitsType();
m_opmFlowDiagStaticData = new RigOpmFlowDiagStaticData(mainGrid, initFileName, caseUnitSystem);
free(mainGrid);
}
}
}