mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4073 3D calculations : Compare main grid cell value if LGR is present
This commit is contained in:
parent
bcadb4383c
commit
58d369d32b
@ -59,7 +59,7 @@ bool RigCaseCellResultCalculator::computeDifference(RigEclipseCaseData*
|
|||||||
{
|
{
|
||||||
if (c && c->caseId() == address.m_differenceCaseId && c->eclipseCaseData())
|
if (c && c->caseId() == address.m_differenceCaseId && c->eclipseCaseData())
|
||||||
{
|
{
|
||||||
baseCase = c->eclipseCaseData();
|
baseCase = c->eclipseCaseData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -73,9 +73,9 @@ bool RigCaseCellResultCalculator::computeDifference(RigEclipseCaseData*
|
|||||||
}
|
}
|
||||||
|
|
||||||
RigMainGrid* sourceMainGrid = sourceCase->mainGrid();
|
RigMainGrid* sourceMainGrid = sourceCase->mainGrid();
|
||||||
RigMainGrid* baseMainGrid = baseCase->mainGrid();
|
RigMainGrid* baseMainGrid = baseCase->mainGrid();
|
||||||
|
|
||||||
if (!RigGridManager::isEqual(sourceMainGrid, baseMainGrid))
|
if (!RigGridManager::isMainGridDimensionsEqual(sourceMainGrid, baseMainGrid))
|
||||||
{
|
{
|
||||||
RiaLogging::error("Case difference : Grid cases do not match");
|
RiaLogging::error("Case difference : Grid cases do not match");
|
||||||
|
|
||||||
@ -126,8 +126,9 @@ bool RigCaseCellResultCalculator::computeDifference(RigEclipseCaseData*
|
|||||||
size_t baseFrameCount = baseCaseResults->cellScalarResults(nativeAddress).size();
|
size_t baseFrameCount = baseCaseResults->cellScalarResults(nativeAddress).size();
|
||||||
size_t sourceFrameCount = sourceCaseResults->cellScalarResults(nativeAddress).size();
|
size_t sourceFrameCount = sourceCaseResults->cellScalarResults(nativeAddress).size();
|
||||||
size_t maxFrameCount = std::min(baseFrameCount, sourceFrameCount);
|
size_t maxFrameCount = std::min(baseFrameCount, sourceFrameCount);
|
||||||
|
size_t maxGridCount = std::min(baseMainGrid->gridCount(), sourceMainGrid->gridCount());
|
||||||
|
|
||||||
for (size_t gridIdx = 0; gridIdx < sourceMainGrid->gridCount(); ++gridIdx)
|
for (size_t gridIdx = 0; gridIdx < maxGridCount; ++gridIdx)
|
||||||
{
|
{
|
||||||
auto grid = sourceMainGrid->gridByIndex(gridIdx);
|
auto grid = sourceMainGrid->gridByIndex(gridIdx);
|
||||||
const RigActiveCellInfo* activeCellInfo = sourceCaseResults->activeCellInfo();
|
const RigActiveCellInfo* activeCellInfo = sourceCaseResults->activeCellInfo();
|
||||||
@ -155,7 +156,7 @@ bool RigCaseCellResultCalculator::computeDifference(RigEclipseCaseData*
|
|||||||
if (activeCellInfo->isActive(reservoirCellIndex))
|
if (activeCellInfo->isActive(reservoirCellIndex))
|
||||||
{
|
{
|
||||||
double sourceVal = sourceResultAccessor->cellScalar(localGridCellIdx);
|
double sourceVal = sourceResultAccessor->cellScalar(localGridCellIdx);
|
||||||
double baseVal = baseResultAccessor->cellScalar(localGridCellIdx);
|
double baseVal = baseResultAccessor->cellScalar(localGridCellIdx);
|
||||||
|
|
||||||
double difference = sourceVal - baseVal;
|
double difference = sourceVal - baseVal;
|
||||||
|
|
||||||
|
@ -118,6 +118,22 @@ bool RigGridManager::isGridDimensionsEqual(const std::vector< std::vector<int> >
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RigGridManager::isMainGridDimensionsEqual(RigMainGrid* gridA, RigMainGrid* gridB)
|
||||||
|
{
|
||||||
|
if (gridA == nullptr || gridB == nullptr) return false;
|
||||||
|
|
||||||
|
if (gridA == gridB) return true;
|
||||||
|
|
||||||
|
if( gridA->cellCountI() != gridB->cellCountI()) return false;
|
||||||
|
if( gridA->cellCountJ() != gridB->cellCountJ()) return false;
|
||||||
|
if( gridA->cellCountK() != gridB->cellCountK()) return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -40,6 +40,8 @@ public:
|
|||||||
|
|
||||||
static bool isEqual(RigMainGrid* gridA, RigMainGrid* gridB);
|
static bool isEqual(RigMainGrid* gridA, RigMainGrid* gridB);
|
||||||
static bool isGridDimensionsEqual(const std::vector< std::vector<int> >& mainCaseGridDimensions, const std::vector< std::vector<int> >& caseGridDimensions);
|
static bool isGridDimensionsEqual(const std::vector< std::vector<int> >& mainCaseGridDimensions, const std::vector< std::vector<int> >& caseGridDimensions);
|
||||||
|
static bool isMainGridDimensionsEqual(RigMainGrid* gridA, RigMainGrid* gridB);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class CaseToGridMap : public cvf::Object
|
class CaseToGridMap : public cvf::Object
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user