diff --git a/ApplicationCode/ReservoirDataModel/RigResultAccessor.cpp b/ApplicationCode/ReservoirDataModel/RigResultAccessor.cpp index 160c2b9abe..aed929abea 100644 --- a/ApplicationCode/ReservoirDataModel/RigResultAccessor.cpp +++ b/ApplicationCode/ReservoirDataModel/RigResultAccessor.cpp @@ -17,3 +17,21 @@ ///////////////////////////////////////////////////////////////////////////////// #include "RigResultAccessor.h" + +#include // Needed for HUGE_VAL on Linux + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +double RigHugeValResultAccessor::cellScalar(size_t gridLocalCellIndex) const +{ + return HUGE_VAL; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +double RigHugeValResultAccessor::cellFaceScalar(size_t gridLocalCellIndex, cvf::StructGridInterface::FaceType faceId) const +{ + return cellScalar(gridLocalCellIndex); +} diff --git a/ApplicationCode/ReservoirDataModel/RigResultAccessor.h b/ApplicationCode/ReservoirDataModel/RigResultAccessor.h index 7bf45e048c..92f860037d 100644 --- a/ApplicationCode/ReservoirDataModel/RigResultAccessor.h +++ b/ApplicationCode/ReservoirDataModel/RigResultAccessor.h @@ -35,3 +35,12 @@ public: virtual double cellFaceScalar(size_t gridLocalCellIndex, cvf::StructGridInterface::FaceType faceId) const = 0; }; +//================================================================================================== +/// +//================================================================================================== +class RigHugeValResultAccessor : public RigResultAccessor +{ +public: + virtual double cellScalar(size_t gridLocalCellIndex) const; + virtual double cellFaceScalar(size_t gridLocalCellIndex, cvf::StructGridInterface::FaceType faceId) const; +}; diff --git a/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.cpp b/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.cpp index 71f20f5083..38bb2cf17d 100644 --- a/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.cpp +++ b/ApplicationCode/ReservoirDataModel/RigResultAccessorFactory.cpp @@ -144,9 +144,10 @@ cvf::ref RigResultAccessorFactory::createResultAccessor(RigCa if (!grid) return NULL; std::vector< std::vector >& scalarSetResults = eclipseCase->results(porosityModel)->cellScalarResults(resultIndex); + if (timeStepIndex >= scalarSetResults.size()) { - return NULL; + return new RigHugeValResultAccessor; } std::vector* resultValues = NULL; @@ -155,6 +156,11 @@ cvf::ref RigResultAccessorFactory::createResultAccessor(RigCa resultValues = &(scalarSetResults[timeStepIndex]); } + if (!resultValues || resultValues->size() == 0) + { + return new RigHugeValResultAccessor; + } + bool useGlobalActiveIndex = eclipseCase->results(porosityModel)->isUsingGlobalActiveIndex(resultIndex); if (useGlobalActiveIndex) {