diff --git a/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp b/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp index 65196ecfe5..6038e9080d 100644 --- a/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp +++ b/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp @@ -245,6 +245,7 @@ bool RifReaderEclipseOutput::transferGeometry(const ecl_grid_type* mainEclGrid, CVF_ASSERT(activeCellInfo && fractureActiveCellInfo); RigMainGrid* mainGrid = eclipseCase->mainGrid(); + CVF_ASSERT(mainGrid); { cvf::Vec3st gridPointDim(0,0,0); gridPointDim.x() = ecl_grid_get_nx(mainEclGrid) + 1; @@ -253,6 +254,10 @@ bool RifReaderEclipseOutput::transferGeometry(const ecl_grid_type* mainEclGrid, mainGrid->setGridPointDimensions(gridPointDim); } + // std::string mainGridName = ecl_grid_get_name(mainEclGrid); + // ERT returns file path to grid file as name for main grid + mainGrid->setGridName("Main grid"); + // Get and set grid and lgr metadata size_t totalCellCount = static_cast(ecl_grid_get_global_size(mainEclGrid)); diff --git a/ApplicationCode/ProjectDataModel/RimReservoirView.cpp b/ApplicationCode/ProjectDataModel/RimReservoirView.cpp index 2b7481ef34..9de665d173 100644 --- a/ApplicationCode/ProjectDataModel/RimReservoirView.cpp +++ b/ApplicationCode/ProjectDataModel/RimReservoirView.cpp @@ -1818,27 +1818,69 @@ void RimReservoirView::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimReservoirView::appendNNCResultInfo(size_t gridIndex, size_t nncIndex, QString* resultInfo) +void RimReservoirView::appendNNCResultInfo(size_t nncIndex, QString* resultInfo) { - if (gridIndex != 0) - { - return; - } + CVF_ASSERT(resultInfo); if (m_reservoir && m_reservoir->reservoirData()) { RigCaseData* eclipseCase = m_reservoir->reservoirData(); + RigMainGrid* grid = eclipseCase->mainGrid(); - - RigNNCData* nncData = grid->nncData(); - - const RigConnection& conn = nncData->connections()[nncIndex]; + CVF_ASSERT(grid); - cvf::StructGridInterface::FaceEnum face(conn.m_c1Face); + RigNNCData* nncData = grid->nncData(); + CVF_ASSERT(nncData); - resultInfo->append(QString("NNC Transmissibility : %1\n").arg(conn.m_transmissibility)); - resultInfo->append(QString("NNC Cell 1 : %1, Face: %2\n").arg(conn.m_c1GlobIdx).arg(face.text())); - resultInfo->append(QString("NNC Cell 2 : %1\n").arg(conn.m_c2GlobIdx)); + if (nncData) + { + const RigConnection& conn = nncData->connections()[nncIndex]; + + cvf::StructGridInterface::FaceEnum face(conn.m_c1Face); + + resultInfo->append(QString("NNC Transmissibility : %1\n").arg(conn.m_transmissibility)); + { + CVF_ASSERT(conn.m_c1GlobIdx < grid->cells().size()); + const RigCell& cell = grid->cells()[conn.m_c1GlobIdx]; + + RigGridBase* hostGrid = cell.hostGrid(); + size_t localCellIndex = cell.cellIndex(); + + size_t i, j, k; + if (hostGrid->ijkFromCellIndex(localCellIndex, &i, &j, &k)) + { + // Adjust to 1-based Eclipse indexing + i++; + j++; + k++; + + QString gridName = QString::fromStdString(hostGrid->gridName()); + resultInfo->append(QString("NNC Cell 1 : IJK %1 %2 %3 (%4)\n").arg(i).arg(j).arg(k).arg(gridName)); + } + } + + { + CVF_ASSERT(conn.m_c2GlobIdx < grid->cells().size()); + const RigCell& cell = grid->cells()[conn.m_c2GlobIdx]; + + RigGridBase* hostGrid = cell.hostGrid(); + size_t localCellIndex = cell.cellIndex(); + + size_t i, j, k; + if (hostGrid->ijkFromCellIndex(localCellIndex, &i, &j, &k)) + { + // Adjust to 1-based Eclipse indexing + i++; + j++; + k++; + + QString gridName = QString::fromStdString(hostGrid->gridName()); + resultInfo->append(QString("NNC Cell 2 : IJK %1 %2 %3 (%4)\n").arg(i).arg(j).arg(k).arg(gridName)); + } + } + + resultInfo->append(QString("Face: %2\n").arg(face.text())); + } } } diff --git a/ApplicationCode/ProjectDataModel/RimReservoirView.h b/ApplicationCode/ProjectDataModel/RimReservoirView.h index cd215e60e9..a1d3f12e37 100644 --- a/ApplicationCode/ProjectDataModel/RimReservoirView.h +++ b/ApplicationCode/ProjectDataModel/RimReservoirView.h @@ -159,7 +159,7 @@ public: // Picking info bool pickInfo(size_t gridIndex, size_t cellIndex, const cvf::Vec3d& point, QString* pickInfoText) const; void appendCellResultInfo(size_t gridIndex, size_t cellIndex, QString* resultInfoText) ; - void appendNNCResultInfo( size_t gridIndex, size_t nncIndex, QString* resultInfo ); + void appendNNCResultInfo(size_t nncIndex, QString* resultInfo); // Does this belong here, really ? void calculateVisibleWellCellsIncFence(cvf::UByteArray* visibleCells, RigGridBase * grid); diff --git a/ApplicationCode/UserInterface/RiuViewer.cpp b/ApplicationCode/UserInterface/RiuViewer.cpp index fc5b55499d..2c41a65672 100644 --- a/ApplicationCode/UserInterface/RiuViewer.cpp +++ b/ApplicationCode/UserInterface/RiuViewer.cpp @@ -462,7 +462,7 @@ void RiuViewer::handlePickAction(int winPosX, int winPosY) { size_t nncIndex = rivSourceInfo->m_NNCIndices->get(faceIndex); - m_reservoirView->appendNNCResultInfo(gridIndex, nncIndex, &resultInfo); + m_reservoirView->appendNNCResultInfo(nncIndex, &resultInfo); } } }