mirror of
https://github.com/OPM/ResInsight.git
synced 2025-01-24 15:26:48 -06:00
Improved result accessor factory
Moved clamping of time step to zero for static results into factory
This commit is contained in:
parent
e9b18e05fe
commit
28a0e1107c
@ -126,17 +126,10 @@ void RivCrossSectionPartMgr::updateCellResultColor(size_t timeStepIndex)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
size_t adjustedTimeStepIndex = timeStepIndex;
|
|
||||||
if (cellResultColors->hasStaticResult())
|
|
||||||
{
|
|
||||||
adjustedTimeStepIndex = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
resultAccessor = RigResultAccessorFactory::createResultAccessor(cellResultColors->reservoirView()->eclipseCase()->reservoirData(),
|
resultAccessor = RigResultAccessorFactory::createResultAccessor(cellResultColors->reservoirView()->eclipseCase()->reservoirData(),
|
||||||
0,
|
0,
|
||||||
RigCaseCellResultsData::convertFromProjectModelPorosityModel(cellResultColors->porosityModel()),
|
timeStepIndex,
|
||||||
adjustedTimeStepIndex,
|
cellResultColors);
|
||||||
cellResultColors->resultVariable());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RivCrossSectionPartMgr::calculateEclipseTextureCoordinates(m_crossSectionFacesTextureCoords.p(),
|
RivCrossSectionPartMgr::calculateEclipseTextureCoordinates(m_crossSectionFacesTextureCoords.p(),
|
||||||
|
@ -785,20 +785,11 @@ void RivReservoirViewPartMgr::computePropertyVisibility(cvf::UByteArray* cellVis
|
|||||||
const double lowerBound = propertyFilter->lowerBound();
|
const double lowerBound = propertyFilter->lowerBound();
|
||||||
const double upperBound = propertyFilter->upperBound();
|
const double upperBound = propertyFilter->upperBound();
|
||||||
|
|
||||||
size_t adjustedTimeStepIndex = timeStepIndex;
|
|
||||||
|
|
||||||
// Set time step to zero for static results
|
|
||||||
if (propertyFilter->resultDefinition()->hasStaticResult())
|
|
||||||
{
|
|
||||||
adjustedTimeStepIndex = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
const RimCellFilter::FilterModeType filterType = propertyFilter->filterMode();
|
const RimCellFilter::FilterModeType filterType = propertyFilter->filterMode();
|
||||||
|
|
||||||
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel(propertyFilter->resultDefinition()->porosityModel());
|
|
||||||
RigCaseData* eclipseCase = propFilterColl->reservoirView()->eclipseCase()->reservoirData();
|
RigCaseData* eclipseCase = propFilterColl->reservoirView()->eclipseCase()->reservoirData();
|
||||||
|
|
||||||
cvf::ref<RigResultAccessor> resultAccessor = RigResultAccessorFactory::createResultAccessor(eclipseCase, grid->gridIndex(), porosityModel, adjustedTimeStepIndex, propertyFilter->resultDefinition->resultVariable(), propertyFilter->resultDefinition->resultType());
|
cvf::ref<RigResultAccessor> resultAccessor = RigResultAccessorFactory::createResultAccessor(eclipseCase, grid->gridIndex(), timeStepIndex, propertyFilter->resultDefinition());
|
||||||
CVF_ASSERT(resultAccessor.notNull());
|
CVF_ASSERT(resultAccessor.notNull());
|
||||||
|
|
||||||
//#pragma omp parallel for schedule(dynamic)
|
//#pragma omp parallel for schedule(dynamic)
|
||||||
|
@ -39,13 +39,7 @@ RivTextureCoordsCreator::RivTextureCoordsCreator(RimEclipseCellColors* cellResul
|
|||||||
m_quadMapper = quadMapper;
|
m_quadMapper = quadMapper;
|
||||||
CVF_ASSERT(quadMapper && eclipseCase );
|
CVF_ASSERT(quadMapper && eclipseCase );
|
||||||
|
|
||||||
size_t resTimeStepIdx = timeStepIndex;
|
m_resultAccessor = RigResultAccessorFactory::createResultAccessor(eclipseCase, gridIndex, timeStepIndex, cellResultColors);
|
||||||
|
|
||||||
if (cellResultColors->hasStaticResult()) resTimeStepIdx = 0;
|
|
||||||
|
|
||||||
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel(cellResultColors->porosityModel());
|
|
||||||
|
|
||||||
m_resultAccessor = RigResultAccessorFactory::createResultAccessor(eclipseCase, gridIndex, porosityModel, resTimeStepIdx, cellResultColors->resultVariable());
|
|
||||||
|
|
||||||
cvf::ref<RigPipeInCellEvaluator> pipeInCellEval = new RigPipeInCellEvaluator(cellResultColors->reservoirView()->wellCollection()->isWellPipesVisible(timeStepIndex),
|
cvf::ref<RigPipeInCellEvaluator> pipeInCellEval = new RigPipeInCellEvaluator(cellResultColors->reservoirView()->wellCollection()->isWellPipesVisible(timeStepIndex),
|
||||||
eclipseCase->gridCellToWellIndex(gridIndex));
|
eclipseCase->gridCellToWellIndex(gridIndex));
|
||||||
|
@ -213,14 +213,11 @@ void RimWellLogExtractionCurve::updatePlotData()
|
|||||||
tvDepthValues = eclExtractor->trueVerticalDepth();
|
tvDepthValues = eclExtractor->trueVerticalDepth();
|
||||||
}
|
}
|
||||||
|
|
||||||
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel(m_eclipseResultDefinition->porosityModel());
|
|
||||||
m_eclipseResultDefinition->loadResult();
|
|
||||||
|
|
||||||
cvf::ref<RigResultAccessor> resAcc = RigResultAccessorFactory::createResultAccessor(
|
cvf::ref<RigResultAccessor> resAcc = RigResultAccessorFactory::createResultAccessor(
|
||||||
eclipseCase->reservoirData(), 0,
|
eclipseCase->reservoirData(),
|
||||||
porosityModel,
|
0,
|
||||||
m_timeStep,
|
m_timeStep,
|
||||||
m_eclipseResultDefinition->resultVariable());
|
m_eclipseResultDefinition);
|
||||||
|
|
||||||
if (resAcc.notNull())
|
if (resAcc.notNull())
|
||||||
{
|
{
|
||||||
|
@ -30,6 +30,8 @@
|
|||||||
#include "RigMainGrid.h"
|
#include "RigMainGrid.h"
|
||||||
#include "RigResultAccessor.h"
|
#include "RigResultAccessor.h"
|
||||||
|
|
||||||
|
#include "RimEclipseResultDefinition.h"
|
||||||
|
|
||||||
#include "cvfAssert.h"
|
#include "cvfAssert.h"
|
||||||
#include "cvfBase.h"
|
#include "cvfBase.h"
|
||||||
#include "cvfLibCore.h"
|
#include "cvfLibCore.h"
|
||||||
@ -145,7 +147,34 @@ cvf::ref<RigResultAccessor> RigResultAccessorFactory::createResultAccessor(RigCa
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return createResultAccessor(eclipseCase, gridIndex, porosityModel, timeStepIndex, scalarSetIndex);
|
size_t adjustedTimeStepIndex = timeStepIndex;
|
||||||
|
if (resultType == RimDefines::STATIC_NATIVE)
|
||||||
|
{
|
||||||
|
adjustedTimeStepIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return createResultAccessor(eclipseCase, gridIndex, porosityModel, adjustedTimeStepIndex, scalarSetIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
cvf::ref<RigResultAccessor> RigResultAccessorFactory::createResultAccessor(RigCaseData* eclipseCase, size_t gridIndex, size_t timeStepIndex, RimEclipseResultDefinition* resultDefinition)
|
||||||
|
{
|
||||||
|
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel(resultDefinition->porosityModel());
|
||||||
|
resultDefinition->loadResult();
|
||||||
|
|
||||||
|
size_t adjustedTimeStepIndex = timeStepIndex;
|
||||||
|
if (resultDefinition->hasStaticResult())
|
||||||
|
{
|
||||||
|
adjustedTimeStepIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return RigResultAccessorFactory::createResultAccessor(
|
||||||
|
eclipseCase, 0,
|
||||||
|
porosityModel,
|
||||||
|
adjustedTimeStepIndex,
|
||||||
|
resultDefinition->resultVariable());
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -21,14 +21,23 @@
|
|||||||
|
|
||||||
#include "RifReaderInterface.h"
|
#include "RifReaderInterface.h"
|
||||||
#include "RigResultAccessor.h"
|
#include "RigResultAccessor.h"
|
||||||
|
|
||||||
#include "RimDefines.h"
|
#include "RimDefines.h"
|
||||||
|
|
||||||
class RigActiveCellInfo;
|
class RigActiveCellInfo;
|
||||||
class RigGridBase;
|
class RigGridBase;
|
||||||
|
|
||||||
|
class RimEclipseResultDefinition;
|
||||||
|
|
||||||
class RigResultAccessorFactory
|
class RigResultAccessorFactory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
static cvf::ref<RigResultAccessor>
|
||||||
|
createResultAccessor(RigCaseData* eclipseCase,
|
||||||
|
size_t gridIndex,
|
||||||
|
size_t timeStepIndex,
|
||||||
|
RimEclipseResultDefinition* resultDefinition);
|
||||||
|
|
||||||
static cvf::ref<RigResultAccessor>
|
static cvf::ref<RigResultAccessor>
|
||||||
createResultAccessor(RigCaseData* eclipseCase,
|
createResultAccessor(RigCaseData* eclipseCase,
|
||||||
size_t gridIndex,
|
size_t gridIndex,
|
||||||
@ -51,8 +60,6 @@ public:
|
|||||||
size_t timeStepIndex,
|
size_t timeStepIndex,
|
||||||
size_t resultIndex);
|
size_t resultIndex);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static cvf::ref<RigResultAccessor>
|
static cvf::ref<RigResultAccessor>
|
||||||
createNativeResultAccessor(RigCaseData* eclipseCase,
|
createNativeResultAccessor(RigCaseData* eclipseCase,
|
||||||
@ -61,7 +68,6 @@ private:
|
|||||||
size_t timeStepIndex,
|
size_t timeStepIndex,
|
||||||
const QString& resultName);
|
const QString& resultName);
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user