diff --git a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp index 8a9796cb5e..a2c032bada 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp @@ -608,8 +608,12 @@ void RimEclipseCase::computeCachedData() { auto task = pInf.task( "Calculating faults", 17 ); - rigEclipseCase->mainGrid()->calculateFaults( - rigEclipseCase->activeCellInfo( RiaDefines::PorosityModelType::MATRIX_MODEL ) ); + + bool computeNncs = RiaApplication::instance()->preferences()->readerSettings()->importNNCs(); + + rigEclipseCase->mainGrid()->calculateFaults( rigEclipseCase->activeCellInfo( + RiaDefines::PorosityModelType::MATRIX_MODEL ), + computeNncs ); } { diff --git a/ApplicationCode/ProjectDataModel/RimEclipseCaseCollection.cpp b/ApplicationCode/ProjectDataModel/RimEclipseCaseCollection.cpp index d13ab58180..ec3c386141 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseCaseCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseCaseCollection.cpp @@ -20,6 +20,11 @@ #include "RimEclipseCaseCollection.h" +#include "RiaApplication.h" +#include "RiaPreferences.h" + +#include "RifReaderSettings.h" + #include "RigEclipseCaseData.h" #include "RigGridManager.h" #include "RigMainGrid.h" @@ -127,8 +132,11 @@ RigMainGrid* RimEclipseCaseCollection::registerCaseInGridCollection( RigEclipseC // This is the first insertion of this grid, compute cached data rigEclipseCase->mainGrid()->computeCachedData(); - rigEclipseCase->mainGrid()->calculateFaults( - rigEclipseCase->activeCellInfo( RiaDefines::PorosityModelType::MATRIX_MODEL ) ); + bool computeNncs = RiaApplication::instance()->preferences()->readerSettings()->importNNCs(); + + rigEclipseCase->mainGrid()->calculateFaults( rigEclipseCase->activeCellInfo( + RiaDefines::PorosityModelType::MATRIX_MODEL ), + computeNncs ); equalGrid = rigEclipseCase->mainGrid(); } diff --git a/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp b/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp index 8998170921..fc5fa837b5 100644 --- a/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp +++ b/ApplicationCode/ReservoirDataModel/RigCaseCellResultsData.cpp @@ -3091,6 +3091,13 @@ void RigCaseCellResultsData::computeAllanResults( RigCaseCellResultsData* cellRe if ( cellResultsData && cellResultsData->activeFormationNames() && !cellResultsData->activeFormationNames()->formationNames().empty() ) { + // If import of NNC is disabled in preferences, we must make ensure that computed NNC connections are in place + if ( mainGrid->nncData()->nativeConnectionCount() == mainGrid->nncData()->connections().size() ) + { + mainGrid->nncData()->computeCompleteSetOfNncs( mainGrid, cellResultsData->activeCellInfo() ); + mainGrid->distributeNNCsToFaults(); + } + auto fnNamesResAddr = RigEclipseResultAddress( RiaDefines::ResultCatType::FORMATION_NAMES, RiaDefines::activeFormationNamesResultName() ); auto fnAllanResultResAddr = diff --git a/ApplicationCode/ReservoirDataModel/RigMainGrid.cpp b/ApplicationCode/ReservoirDataModel/RigMainGrid.cpp index 25b5dc2703..02334612b5 100644 --- a/ApplicationCode/ReservoirDataModel/RigMainGrid.cpp +++ b/ApplicationCode/ReservoirDataModel/RigMainGrid.cpp @@ -413,7 +413,7 @@ bool RigMainGrid::hasFaultWithName( const QString& name ) const //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RigMainGrid::calculateFaults( const RigActiveCellInfo* activeCellInfo ) +void RigMainGrid::calculateFaults( const RigActiveCellInfo* activeCellInfo, bool computeNncs ) { if ( hasFaultWithName( RiaDefines::undefinedGridFaultName() ) && hasFaultWithName( RiaDefines::undefinedGridFaultWithInactiveName() ) ) @@ -556,7 +556,10 @@ void RigMainGrid::calculateFaults( const RigActiveCellInfo* activeCellInfo ) } } - this->nncData()->computeCompleteSetOfNncs( this, activeCellInfo ); + if ( computeNncs ) + { + this->nncData()->computeCompleteSetOfNncs( this, activeCellInfo ); + } distributeNNCsToFaults(); } diff --git a/ApplicationCode/ReservoirDataModel/RigMainGrid.h b/ApplicationCode/ReservoirDataModel/RigMainGrid.h index 033f3d8fef..37742688a2 100644 --- a/ApplicationCode/ReservoirDataModel/RigMainGrid.h +++ b/ApplicationCode/ReservoirDataModel/RigMainGrid.h @@ -70,7 +70,7 @@ public: void setFaults( const cvf::Collection& faults ); const cvf::Collection& faults() const; cvf::Collection& faults(); - void calculateFaults( const RigActiveCellInfo* activeCellInfo ); + void calculateFaults( const RigActiveCellInfo* activeCellInfo, bool computeNncs ); void distributeNNCsToFaults();