Improved result accessor factory

Moved clamping of time step to zero for static results into factory
This commit is contained in:
Magne Sjaastad
2015-12-09 09:17:13 +01:00
parent e9b18e05fe
commit 28a0e1107c
6 changed files with 46 additions and 36 deletions

View File

@@ -30,6 +30,8 @@
#include "RigMainGrid.h"
#include "RigResultAccessor.h"
#include "RimEclipseResultDefinition.h"
#include "cvfAssert.h"
#include "cvfBase.h"
#include "cvfLibCore.h"
@@ -145,7 +147,34 @@ cvf::ref<RigResultAccessor> RigResultAccessorFactory::createResultAccessor(RigCa
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());
}
//--------------------------------------------------------------------------------------------------

View File

@@ -21,14 +21,23 @@
#include "RifReaderInterface.h"
#include "RigResultAccessor.h"
#include "RimDefines.h"
class RigActiveCellInfo;
class RigGridBase;
class RimEclipseResultDefinition;
class RigResultAccessorFactory
{
public:
static cvf::ref<RigResultAccessor>
createResultAccessor(RigCaseData* eclipseCase,
size_t gridIndex,
size_t timeStepIndex,
RimEclipseResultDefinition* resultDefinition);
static cvf::ref<RigResultAccessor>
createResultAccessor(RigCaseData* eclipseCase,
size_t gridIndex,
@@ -51,8 +60,6 @@ public:
size_t timeStepIndex,
size_t resultIndex);
private:
static cvf::ref<RigResultAccessor>
createNativeResultAccessor(RigCaseData* eclipseCase,
@@ -61,7 +68,6 @@ private:
size_t timeStepIndex,
const QString& resultName);
};