#5925 Simplify computation of fault data

This commit is contained in:
Magne Sjaastad
2020-05-13 17:57:21 +02:00
parent 928acfdf9b
commit 73ac3e5db1
4 changed files with 33 additions and 30 deletions

View File

@@ -609,18 +609,7 @@ void RimEclipseCase::computeCachedData()
{ {
auto task = pInf.task( "Calculating faults", 17 ); auto task = pInf.task( "Calculating faults", 17 );
bool computeFaults = RiaApplication::instance()->preferences()->readerSettings()->importFaults(); ensureFaultDataIsComputed();
if ( computeFaults )
{
bool computeNncs = RiaApplication::instance()->preferences()->readerSettings()->importNNCs();
bool includeInactiveCells =
RiaApplication::instance()->preferences()->readerSettings()->includeInactiveCellsInFaultGeometry();
rigEclipseCase->mainGrid()->calculateFaults( rigEclipseCase->activeCellInfo(
RiaDefines::PorosityModelType::MATRIX_MODEL ),
computeNncs,
includeInactiveCells );
}
} }
{ {
@@ -701,6 +690,29 @@ void RimEclipseCase::loadAndSyncronizeInputProperties( bool includeGridFileName
RifEclipseInputPropertyLoader::loadAndSyncronizeInputProperties( inputPropertyCollection(), eclipseCaseData(), filenames ); RifEclipseInputPropertyLoader::loadAndSyncronizeInputProperties( inputPropertyCollection(), eclipseCaseData(), filenames );
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseCase::ensureFaultDataIsComputed()
{
RigEclipseCaseData* rigEclipseCase = eclipseCaseData();
if ( rigEclipseCase )
{
bool computeFaults = RiaApplication::instance()->preferences()->readerSettings()->importFaults();
if ( computeFaults )
{
bool computeNncs = RiaApplication::instance()->preferences()->readerSettings()->importNNCs();
bool includeInactiveCells =
RiaApplication::instance()->preferences()->readerSettings()->includeInactiveCellsInFaultGeometry();
rigEclipseCase->mainGrid()->calculateFaults( rigEclipseCase->activeCellInfo(
RiaDefines::PorosityModelType::MATRIX_MODEL ),
computeNncs,
includeInactiveCells );
}
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@@ -115,6 +115,8 @@ public:
void loadAndSyncronizeInputProperties( bool includeGridFileName ); void loadAndSyncronizeInputProperties( bool includeGridFileName );
void ensureFaultDataIsComputed();
protected: protected:
void initAfterRead() override; void initAfterRead() override;
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;

View File

@@ -78,8 +78,7 @@ RimIdenticalGridCaseGroup* RimEclipseCaseCollection::createIdenticalCaseGroupFro
{ {
CVF_ASSERT( mainCase ); CVF_ASSERT( mainCase );
RigEclipseCaseData* rigEclipseCase = mainCase->eclipseCaseData(); RigMainGrid* equalGrid = registerCaseInGridCollection( mainCase );
RigMainGrid* equalGrid = registerCaseInGridCollection( rigEclipseCase );
CVF_ASSERT( equalGrid ); CVF_ASSERT( equalGrid );
RimIdenticalGridCaseGroup* group = new RimIdenticalGridCaseGroup; RimIdenticalGridCaseGroup* group = new RimIdenticalGridCaseGroup;
@@ -116,9 +115,10 @@ void RimEclipseCaseCollection::removeCaseFromAllGroups( RimEclipseCase* reservoi
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RigMainGrid* RimEclipseCaseCollection::registerCaseInGridCollection( RigEclipseCaseData* rigEclipseCase ) RigMainGrid* RimEclipseCaseCollection::registerCaseInGridCollection( RimEclipseCase* rimEclipseCase )
{ {
CVF_ASSERT( rigEclipseCase ); CVF_ASSERT( rimEclipseCase && rimEclipseCase->eclipseCaseData() );
RigEclipseCaseData* rigEclipseCase = rimEclipseCase->eclipseCaseData();
RigMainGrid* equalGrid = m_gridCollection->findEqualGrid( rigEclipseCase->mainGrid() ); RigMainGrid* equalGrid = m_gridCollection->findEqualGrid( rigEclipseCase->mainGrid() );
@@ -132,17 +132,7 @@ RigMainGrid* RimEclipseCaseCollection::registerCaseInGridCollection( RigEclipseC
// This is the first insertion of this grid, compute cached data // This is the first insertion of this grid, compute cached data
rigEclipseCase->mainGrid()->computeCachedData(); rigEclipseCase->mainGrid()->computeCachedData();
bool computeFaults = RiaApplication::instance()->preferences()->readerSettings()->importFaults(); rimEclipseCase->ensureFaultDataIsComputed();
if ( computeFaults )
{
bool computeNncs = RiaApplication::instance()->preferences()->readerSettings()->importNNCs();
bool includeInactiveCells =
RiaApplication::instance()->preferences()->readerSettings()->includeInactiveCellsInFaultGeometry();
rigEclipseCase->mainGrid()->calculateFaults( rigEclipseCase->activeCellInfo(
RiaDefines::PorosityModelType::MATRIX_MODEL ),
computeNncs,
includeInactiveCells );
}
equalGrid = rigEclipseCase->mainGrid(); equalGrid = rigEclipseCase->mainGrid();
} }
@@ -159,8 +149,7 @@ void RimEclipseCaseCollection::insertCaseInCaseGroup( RimIdenticalGridCaseGroup*
{ {
CVF_ASSERT( rimReservoir ); CVF_ASSERT( rimReservoir );
RigEclipseCaseData* rigEclipseCase = rimReservoir->eclipseCaseData(); registerCaseInGridCollection( rimReservoir );
registerCaseInGridCollection( rigEclipseCase );
caseGroup->addCase( rimReservoir ); caseGroup->addCase( rimReservoir );
} }

View File

@@ -58,6 +58,6 @@ public:
void recomputeStatisticsForAllCaseGroups(); void recomputeStatisticsForAllCaseGroups();
private: private:
RigMainGrid* registerCaseInGridCollection( RigEclipseCaseData* rigEclipseCase ); RigMainGrid* registerCaseInGridCollection( RimEclipseCase* rimEclipseCase );
cvf::ref<RigGridManager> m_gridCollection; cvf::ref<RigGridManager> m_gridCollection;
}; };