#8582 Eclipse Case : Make it possible to access RFT data without grid data

This commit is contained in:
Magne Sjaastad 2022-02-24 08:20:43 +01:00
parent 65e80ca03f
commit 7f41349b5c
2 changed files with 34 additions and 17 deletions

View File

@ -72,6 +72,7 @@ RimEclipseResultCase::RimEclipseResultCase()
: m_gridAndWellDataIsReadFromFile( false )
, m_activeCellInfoIsReadFromFile( false )
, m_useOpmRftReader( true )
, m_rftDataIsReadFromFile( false )
{
CAF_PDM_InitScriptableObject( "Eclipse Case", ":/Case48x48.png", "", "The Regular Eclipse Results Case" );
@ -205,23 +206,7 @@ bool RimEclipseResultCase::importGridAndResultMetaData( bool showTimeStepFilter
m_gridAndWellDataIsReadFromFile = true;
m_activeCellInfoIsReadFromFile = true;
QFileInfo eclipseCaseFileInfo( gridFileName() );
QString rftFileName = eclipseCaseFileInfo.path() + "/" + eclipseCaseFileInfo.completeBaseName() + ".RFT";
QFileInfo rftFileInfo( rftFileName );
if ( rftFileInfo.exists() )
{
RiaLogging::info( QString( "RFT file found" ) );
if ( m_useOpmRftReader )
{
m_readerOpmRft = new RifReaderOpmRft( rftFileInfo.filePath() );
}
else
{
m_readerEclipseRft = new RifReaderEclipseRft( rftFileInfo.filePath() );
}
}
ensureRftDataIsImported();
if ( m_flowDiagSolutions.empty() )
{
@ -358,6 +343,34 @@ void RimEclipseResultCase::loadAndUpdateSourSimData()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseResultCase::ensureRftDataIsImported()
{
if ( m_rftDataIsReadFromFile ) return;
QFileInfo eclipseCaseFileInfo( gridFileName() );
QString rftFileName = eclipseCaseFileInfo.path() + "/" + eclipseCaseFileInfo.completeBaseName() + ".RFT";
QFileInfo rftFileInfo( rftFileName );
if ( rftFileInfo.exists() )
{
RiaLogging::info( QString( "RFT file found" ) );
if ( m_useOpmRftReader )
{
m_readerOpmRft = new RifReaderOpmRft( rftFileInfo.filePath() );
}
else
{
m_readerEclipseRft = new RifReaderEclipseRft( rftFileInfo.filePath() );
}
}
m_rftDataIsReadFromFile = true;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -535,6 +548,8 @@ RigFlowDiagSolverInterface* RimEclipseResultCase::flowDiagSolverInterface()
//--------------------------------------------------------------------------------------------------
RifReaderRftInterface* RimEclipseResultCase::rftReader()
{
ensureRftDataIsImported();
if ( m_useOpmRftReader ) return m_readerOpmRft.p();
return m_readerEclipseRft.p();

View File

@ -81,6 +81,7 @@ protected:
private:
void loadAndUpdateSourSimData();
void ensureRftDataIsImported();
private:
cvf::ref<RifReaderInterface> createMockModel( QString modelName );
@ -100,4 +101,5 @@ private:
bool m_gridAndWellDataIsReadFromFile;
bool m_activeCellInfoIsReadFromFile;
bool m_useOpmRftReader;
bool m_rftDataIsReadFromFile;
};