diff --git a/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp b/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp index d873d79483..0a11e13f55 100644 --- a/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp +++ b/ApplicationCode/FileInterface/RifReaderEclipseOutput.cpp @@ -728,24 +728,31 @@ void RifReaderEclipseOutput::transferStaticNNCData( const ecl_grid_type* mainEcl if ( numNNC > 0 ) { // Transform to our own data structures + std::vector nncConnections; + std::vector transmissibilityValuesTemp; - mainGrid->nncData()->connections().resize( numNNC ); - std::vector& transmissibilityValues = mainGrid->nncData()->makeStaticConnectionScalarResult( - RiaDefines::propertyNameCombTrans() ); const double* transValues = ecl_nnc_data_get_values( tran_data ); for ( int nIdx = 0; nIdx < numNNC; ++nIdx ) { const ecl_nnc_pair_type* geometry_pair = ecl_nnc_geometry_iget( nnc_geo, nIdx ); RigGridBase* grid1 = mainGrid->gridByIndex( geometry_pair->grid_nr1 ); - mainGrid->nncData()->connections()[nIdx].m_c1GlobIdx = grid1->reservoirCellIndex( - geometry_pair->global_index1 ); - RigGridBase* grid2 = mainGrid->gridByIndex( geometry_pair->grid_nr2 ); - mainGrid->nncData()->connections()[nIdx].m_c2GlobIdx = grid2->reservoirCellIndex( - geometry_pair->global_index2 ); + RigGridBase* grid2 = mainGrid->gridByIndex( geometry_pair->grid_nr2 ); - transmissibilityValues[nIdx] = transValues[nIdx]; + RigConnection nncConnection; + nncConnection.m_c1GlobIdx = grid1->reservoirCellIndex( geometry_pair->global_index1 ); + nncConnection.m_c2GlobIdx = grid2->reservoirCellIndex( geometry_pair->global_index2 ); + + nncConnections.push_back( nncConnection ); + + transmissibilityValuesTemp.push_back( transValues[nIdx] ); } + + mainGrid->nncData()->setConnections( nncConnections ); + + std::vector& transmissibilityValues = mainGrid->nncData()->makeStaticConnectionScalarResult( + RiaDefines::propertyNameCombTrans() ); + transmissibilityValues = transmissibilityValuesTemp; } ecl_nnc_data_free( tran_data ); diff --git a/ApplicationCode/ProjectDataModel/RimFaultInViewCollection.cpp b/ApplicationCode/ProjectDataModel/RimFaultInViewCollection.cpp index c6178e7c19..ee8d220188 100644 --- a/ApplicationCode/ProjectDataModel/RimFaultInViewCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimFaultInViewCollection.cpp @@ -272,8 +272,8 @@ void RimFaultInViewCollection::syncronizeFaults() // NNCs this->noCommonAreaNnncCollection()->noCommonAreaNncs().deleteAllChildObjects(); - RigMainGrid* mainGrid = parentView()->mainGrid(); - std::vector& nncConnections = mainGrid->nncData()->connections(); + RigMainGrid* mainGrid = parentView()->mainGrid(); + const std::vector& nncConnections = mainGrid->nncData()->connections(); for ( size_t connIndex = 0; connIndex < nncConnections.size(); connIndex++ ) { if ( !nncConnections[connIndex].hasCommonArea() ) diff --git a/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp b/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp index 1b6aceb982..d3d180fc68 100644 --- a/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp +++ b/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp @@ -2239,7 +2239,7 @@ void RigCaseCellResultsData::computeNncCombRiTrans() bool isFaceNormalsOutwards = m_ownerMainGrid->isFaceNormalsOutwards(); // NNC calculation - std::vector& nncConnections = m_ownerMainGrid->nncData()->connections(); + const std::vector& nncConnections = m_ownerMainGrid->nncData()->connections(); for ( size_t connIdx = 0; connIdx < nncConnections.size(); connIdx++ ) { size_t nativeResvCellIndex = nncConnections[connIdx].m_c1GlobIdx; diff --git a/ApplicationCode/ReservoirDataModel/RigNNCData.cpp b/ApplicationCode/ReservoirDataModel/RigNNCData.cpp index 686e39141c..3294caa092 100644 --- a/ApplicationCode/ReservoirDataModel/RigNNCData.cpp +++ b/ApplicationCode/ReservoirDataModel/RigNNCData.cpp @@ -179,6 +179,22 @@ cvf::StructGridInterface::FaceType RigNNCData::calculateCellFaceOverlap( const R return cvf::StructGridInterface::NO_FACE; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RigNNCData::setConnections( std::vector& connections ) +{ + m_connections = connections; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +const std::vector& RigNNCData::connections() const +{ + return m_connections; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ReservoirDataModel/RigNNCData.h b/ApplicationCode/ReservoirDataModel/RigNNCData.h index b643124cd1..13059ea2e8 100644 --- a/ApplicationCode/ReservoirDataModel/RigNNCData.h +++ b/ApplicationCode/ReservoirDataModel/RigNNCData.h @@ -75,14 +75,9 @@ public: std::vector* connectionPolygon, std::vector* connectionIntersections ); - std::vector& connections() - { - return m_connections; - } - const std::vector& connections() const - { - return m_connections; - } + void setConnections( std::vector& connections ); + + const std::vector& connections() const; std::vector& makeStaticConnectionScalarResult( QString nncDataType ); const std::vector* staticConnectionScalarResult( const RigEclipseResultAddress& resVarAddr ) const; diff --git a/ApplicationCode/ReservoirDataModel/RigReservoirBuilderMock.cpp b/ApplicationCode/ReservoirDataModel/RigReservoirBuilderMock.cpp index 306b60e708..2c455910bb 100644 --- a/ApplicationCode/ReservoirDataModel/RigReservoirBuilderMock.cpp +++ b/ApplicationCode/ReservoirDataModel/RigReservoirBuilderMock.cpp @@ -536,7 +536,7 @@ void RigReservoirBuilderMock::addFaults( RigEclipseCaseData* eclipseCase ) grid->setFaults( faults ); // NNCs - std::vector& nncConnections = grid->nncData()->connections(); + std::vector nncConnections; { size_t i1 = 2; size_t j1 = 2; @@ -561,6 +561,8 @@ void RigReservoirBuilderMock::addFaults( RigEclipseCaseData* eclipseCase ) addNnc( grid, i1, j1, k1, i2, j2, k2, nncConnections ); } + grid->nncData()->setConnections( nncConnections ); + std::vector& tranVals = grid->nncData()->makeStaticConnectionScalarResult( RiaDefines::propertyNameCombTrans() ); for ( size_t cIdx = 0; cIdx < tranVals.size(); ++cIdx )