NNC: Compute data on demand

This commit is contained in:
Magne Sjaastad
2020-05-16 15:51:59 +02:00
parent 734e992384
commit 51fd5e39b0
8 changed files with 74 additions and 15 deletions

View File

@@ -707,6 +707,38 @@ void RimEclipseCase::ensureFaultDataIsComputed()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimEclipseCase::ensureNncDataIsComputed()
{
bool computedData = false;
RigEclipseCaseData* rigEclipseCase = eclipseCaseData();
if ( rigEclipseCase && rigEclipseCase->mainGrid() )
{
computedData = rigEclipseCase->mainGrid()->nncData()->ensureConnectionDataIsProcecced();
}
return computedData;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseCase::createDisplayModelAndUpdateAllViews()
{
for ( const auto& v : views() )
{
RimEclipseView* eclipseView = dynamic_cast<RimEclipseView*>( v );
if ( eclipseView )
{
eclipseView->scheduleReservoirGridGeometryRegen();
}
v->loadDataAndUpdate();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -116,6 +116,8 @@ public:
void loadAndSyncronizeInputProperties( bool includeGridFileName );
void ensureFaultDataIsComputed();
bool ensureNncDataIsComputed();
void createDisplayModelAndUpdateAllViews();
protected:
void initAfterRead() override;

View File

@@ -22,6 +22,7 @@
#include "RiaColorTables.h"
#include "RiaLogging.h"
#include "RiaNncDefines.h"
#include "RiaQDateTimeTools.h"
#include "RicfCommandObject.h"
@@ -1150,6 +1151,19 @@ void RimEclipseResultDefinition::loadResult()
gridCellResults->createResultEntry( this->eclipseResultAddress(), false );
}
QString resultName = m_resultVariable();
std::set<QString> eclipseResultNamesWithNncData = RiaDefines::nncResultNames();
if ( eclipseResultNamesWithNncData.find( resultName ) != eclipseResultNamesWithNncData.end() )
{
eclipseCase()->ensureFaultDataIsComputed();
bool dataWasComputed = eclipseCase()->ensureNncDataIsComputed();
if ( dataWasComputed )
{
eclipseCase()->createDisplayModelAndUpdateAllViews();
}
}
gridCellResults->ensureKnownResultLoaded( this->eclipseResultAddress() );
}
}