From 76a48a8f871719aa42235d0b04355e7a166d8c8f Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Tue, 23 Oct 2018 15:28:04 +0200 Subject: [PATCH] #3531 Temporary LGR : Add helper methods for grid and cell count --- .../FileInterface/RifReaderEclipseOutput.cpp | 4 +-- .../RigCaseCellResultsData.cpp | 8 +---- .../ReservoirDataModel/RigMainGrid.cpp | 36 +++++++++++++++++++ .../ReservoirDataModel/RigMainGrid.h | 4 +++ 4 files changed, 43 insertions(+), 9 deletions(-) diff --git a/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp b/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp index 950cc2fa7b..30a4349b69 100644 --- a/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp +++ b/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp @@ -1060,7 +1060,7 @@ bool RifReaderEclipseOutput::dynamicResult(const QString& result, RiaDefines::Po size_t indexOnFile = timeStepIndexOnFile(stepIndex); std::vector fileValues; - if (!m_dynamicResultsAccess->results(result, indexOnFile, m_eclipseCase->mainGrid()->gridCount(), &fileValues)) + if (!m_dynamicResultsAccess->results(result, indexOnFile, m_eclipseCase->mainGrid()->gridCountOnFile(), &fileValues)) { return false; } @@ -1349,7 +1349,7 @@ class WellResultPointHasSubCellConnectionCalculator public: explicit WellResultPointHasSubCellConnectionCalculator(const RigMainGrid* mainGrid, well_state_type* ert_well_state): m_mainGrid(mainGrid) { - int lastGridNr = static_cast(m_mainGrid->gridCount()) - 1; + int lastGridNr = static_cast(m_mainGrid->gridCountOnFile()) - 1; for ( int gridNr = lastGridNr; gridNr >= 0; --gridNr ) { diff --git a/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp b/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp index 5b361974af..b723249789 100644 --- a/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp +++ b/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp @@ -1111,13 +1111,7 @@ size_t RigCaseCellResultsData::findOrLoadScalarResult(RiaDefines::ResultCatType bool resultLoadingSucess = true; - int tempGridCellCount = 0; - for (int i = 1; i < m_ownerMainGrid->gridCount(); i++) - { - auto grid = m_ownerMainGrid->gridByIndex(i); - if (grid->isTempGrid()) tempGridCellCount += (int)grid->cellCount(); - } - + size_t tempGridCellCount = m_ownerMainGrid->totalTemporaryGridCellCount(); if (type == RiaDefines::DYNAMIC_NATIVE && timeStepCount > 0) { diff --git a/ApplicationCode/ReservoirDataModel/RigMainGrid.cpp b/ApplicationCode/ReservoirDataModel/RigMainGrid.cpp index 2fd62c1b5e..aa43926e39 100644 --- a/ApplicationCode/ReservoirDataModel/RigMainGrid.cpp +++ b/ApplicationCode/ReservoirDataModel/RigMainGrid.cpp @@ -198,6 +198,24 @@ void RigMainGrid::addLocalGrid(RigLocalGrid* localGrid) m_gridIdToIndexMapping[localGrid->gridId()] = localGrid->gridIndex(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +size_t RigMainGrid::gridCountOnFile() const +{ + size_t gridCount = 1; + + for (const auto& grid : m_localGrids) + { + if (!grid->isTempGrid()) + { + gridCount++; + } + } + + return gridCount; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -331,6 +349,24 @@ RigGridBase* RigMainGrid::gridById(int localGridId) return this->gridByIndex(m_gridIdToIndexMapping[localGridId]); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +size_t RigMainGrid::totalTemporaryGridCellCount() const +{ + size_t cellCount = 0; + + for (const auto& grid : m_localGrids) + { + if (grid->isTempGrid()) + { + cellCount += grid->cellCount(); + } + } + + return cellCount; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ReservoirDataModel/RigMainGrid.h b/ApplicationCode/ReservoirDataModel/RigMainGrid.h index 4cfd946250..3f3db25c68 100644 --- a/ApplicationCode/ReservoirDataModel/RigMainGrid.h +++ b/ApplicationCode/ReservoirDataModel/RigMainGrid.h @@ -60,10 +60,14 @@ public: size_t findReservoirCellIndexFromPoint(const cvf::Vec3d& point) const; std::vector findAllReservoirCellIndicesMatching2dPoint(const cvf::Vec2d& point2d) const; void addLocalGrid(RigLocalGrid* localGrid); + + size_t gridCountOnFile() const; size_t gridCount() const; RigGridBase* gridByIndex(size_t localGridIndex); const RigGridBase* gridByIndex(size_t localGridIndex) const; RigGridBase* gridById(int localGridId); + + size_t totalTemporaryGridCellCount() const; RigNNCData* nncData(); void setFaults(const cvf::Collection& faults);