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:
		@@ -75,7 +75,7 @@ bool RigCaseCellResultCalculator::computeDifference(RigEclipseCaseData*
 | 
			
		||||
    RigMainGrid* sourceMainGrid = sourceCase->mainGrid();
 | 
			
		||||
    RigMainGrid* baseMainGrid   = baseCase->mainGrid();
 | 
			
		||||
 | 
			
		||||
    if (!RigGridManager::isEqual(sourceMainGrid, baseMainGrid))
 | 
			
		||||
    if (!RigGridManager::isMainGridDimensionsEqual(sourceMainGrid, baseMainGrid))
 | 
			
		||||
    {
 | 
			
		||||
        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 sourceFrameCount = sourceCaseResults->cellScalarResults(nativeAddress).size();
 | 
			
		||||
    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);
 | 
			
		||||
        const RigActiveCellInfo* activeCellInfo = sourceCaseResults->activeCellInfo();
 | 
			
		||||
 
 | 
			
		||||
@@ -118,6 +118,22 @@ bool RigGridManager::isGridDimensionsEqual(const std::vector< std::vector<int> >
 | 
			
		||||
    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 isGridDimensionsEqual(const std::vector< std::vector<int> >& mainCaseGridDimensions, const std::vector< std::vector<int> >& caseGridDimensions);
 | 
			
		||||
    static bool isMainGridDimensionsEqual(RigMainGrid* gridA, RigMainGrid* gridB);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    class CaseToGridMap : public cvf::Object
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user