mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
GRDECL: Import multiple grid files from dialog (#10142)
Add import of N .GRDECL grid files - as done for roff-files
This commit is contained in:
parent
93ab49cf02
commit
0d8aee8995
@ -249,7 +249,8 @@ void RiaApplication::createMockModelCustomized()
|
|||||||
void RiaApplication::createInputMockModel()
|
void RiaApplication::createInputMockModel()
|
||||||
{
|
{
|
||||||
bool createView = true;
|
bool createView = true;
|
||||||
RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( QStringList( RiaDefines::mockModelBasicInputCase() ), createView );
|
RiaImportEclipseCaseTools::openEclipseInputCaseAndPropertiesFromFileNames( QStringList( RiaDefines::mockModelBasicInputCase() ),
|
||||||
|
createView );
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -253,24 +253,25 @@ bool RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilter( const QString
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
int RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( const QStringList& fileNames, bool createDefaultView )
|
RiaImportEclipseCaseTools::CaseFileNameAndId
|
||||||
|
RiaImportEclipseCaseTools::openEclipseInputCaseAndPropertiesFromFileNames( const QStringList& fileNames, bool createDefaultView )
|
||||||
{
|
{
|
||||||
auto* rimInputReservoir = new RimEclipseInputCase();
|
|
||||||
|
|
||||||
RimProject* project = RimProject::current();
|
RimProject* project = RimProject::current();
|
||||||
if ( !project ) return -1;
|
if ( !project ) return { QString(), -1 };
|
||||||
|
|
||||||
|
auto* rimInputReservoir = new RimEclipseInputCase();
|
||||||
project->assignCaseIdToCase( rimInputReservoir );
|
project->assignCaseIdToCase( rimInputReservoir );
|
||||||
|
|
||||||
bool gridImportSuccess = rimInputReservoir->openDataFileSet( fileNames );
|
bool gridImportSuccess = rimInputReservoir->openDataFileSet( fileNames );
|
||||||
if ( !gridImportSuccess )
|
if ( !gridImportSuccess )
|
||||||
{
|
{
|
||||||
RiaLogging::error( "Failed to import grid" );
|
RiaLogging::error( "Failed to import grid" );
|
||||||
return -1;
|
delete rimInputReservoir;
|
||||||
|
return { QString(), -1 };
|
||||||
}
|
}
|
||||||
|
|
||||||
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : nullptr;
|
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : nullptr;
|
||||||
if ( analysisModels == nullptr ) return false;
|
if ( analysisModels == nullptr ) return { QString(), -1 };
|
||||||
|
|
||||||
analysisModels->cases.push_back( rimInputReservoir );
|
analysisModels->cases.push_back( rimInputReservoir );
|
||||||
|
|
||||||
@ -296,7 +297,22 @@ int RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( const QStringL
|
|||||||
Riu3DMainWindowTools::selectAsCurrentItem( eclipseView->cellResult() );
|
Riu3DMainWindowTools::selectAsCurrentItem( eclipseView->cellResult() );
|
||||||
}
|
}
|
||||||
|
|
||||||
return rimInputReservoir->caseId();
|
return { rimInputReservoir->gridFileName(), rimInputReservoir->caseId() };
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
std::vector<int> RiaImportEclipseCaseTools::openEclipseInputCasesFromFileNames( const QStringList& fileNames, bool createDefaultView )
|
||||||
|
{
|
||||||
|
std::vector<int> eclipseCaseIds;
|
||||||
|
for ( const auto& fileName : fileNames )
|
||||||
|
{
|
||||||
|
// Open with single file
|
||||||
|
auto [caseFileName, caseId] = openEclipseInputCaseAndPropertiesFromFileNames( { fileName }, createDefaultView );
|
||||||
|
eclipseCaseIds.push_back( caseId );
|
||||||
|
}
|
||||||
|
return eclipseCaseIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -317,6 +333,12 @@ int RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( const QStr
|
|||||||
bool createView,
|
bool createView,
|
||||||
std::shared_ptr<RifReaderSettings> readerSettings )
|
std::shared_ptr<RifReaderSettings> readerSettings )
|
||||||
{
|
{
|
||||||
|
RimProject* project = RimProject::current();
|
||||||
|
if ( !project ) return -1;
|
||||||
|
|
||||||
|
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : nullptr;
|
||||||
|
if ( analysisModels == nullptr ) return -1;
|
||||||
|
|
||||||
QFileInfo gridFileName( fileName );
|
QFileInfo gridFileName( fileName );
|
||||||
QString caseName = gridFileName.completeBaseName();
|
QString caseName = gridFileName.completeBaseName();
|
||||||
|
|
||||||
@ -324,16 +346,6 @@ int RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( const QStr
|
|||||||
rimResultReservoir->setCaseInfo( caseName, fileName );
|
rimResultReservoir->setCaseInfo( caseName, fileName );
|
||||||
rimResultReservoir->setReaderSettings( readerSettings );
|
rimResultReservoir->setReaderSettings( readerSettings );
|
||||||
|
|
||||||
RimProject* project = RimProject::current();
|
|
||||||
if ( !project ) return -1;
|
|
||||||
|
|
||||||
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : nullptr;
|
|
||||||
if ( analysisModels == nullptr )
|
|
||||||
{
|
|
||||||
delete rimResultReservoir;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( RiaGuiApplication::isRunning() )
|
if ( RiaGuiApplication::isRunning() )
|
||||||
{
|
{
|
||||||
RicShowMainWindowFeature::showMainWindow();
|
RicShowMainWindowFeature::showMainWindow();
|
||||||
@ -344,9 +356,7 @@ int RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( const QStr
|
|||||||
if ( !rimResultReservoir->importGridAndResultMetaData( showTimeStepFilter ) )
|
if ( !rimResultReservoir->importGridAndResultMetaData( showTimeStepFilter ) )
|
||||||
{
|
{
|
||||||
analysisModels->removeCaseFromAllGroups( rimResultReservoir );
|
analysisModels->removeCaseFromAllGroups( rimResultReservoir );
|
||||||
|
|
||||||
delete rimResultReservoir;
|
delete rimResultReservoir;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -408,7 +418,6 @@ bool RiaImportEclipseCaseTools::addEclipseCases( const QStringList& fileNames, R
|
|||||||
if ( !rimResultReservoir->openEclipseGridFile() )
|
if ( !rimResultReservoir->openEclipseGridFile() )
|
||||||
{
|
{
|
||||||
delete rimResultReservoir;
|
delete rimResultReservoir;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -508,6 +517,7 @@ std::vector<int> RiaImportEclipseCaseTools::openRoffCasesFromFileNames( const QS
|
|||||||
{
|
{
|
||||||
const auto errMsg = "Failed to import grid from file: " + fileName.toStdString();
|
const auto errMsg = "Failed to import grid from file: " + fileName.toStdString();
|
||||||
RiaLogging::error( errMsg.c_str() );
|
RiaLogging::error( errMsg.c_str() );
|
||||||
|
delete roffCase;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -554,6 +564,7 @@ RimRoffCase* RiaImportEclipseCaseTools::openRoffCaseFromFileName( const QString&
|
|||||||
{
|
{
|
||||||
const auto errMsg = "Failed to import grid from file: " + fileName.toStdString();
|
const auto errMsg = "Failed to import grid from file: " + fileName.toStdString();
|
||||||
RiaLogging::error( errMsg.c_str() );
|
RiaLogging::error( errMsg.c_str() );
|
||||||
|
delete roffCase;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
class QString;
|
class QString;
|
||||||
@ -35,7 +36,8 @@ class RifReaderSettings;
|
|||||||
class RiaImportEclipseCaseTools
|
class RiaImportEclipseCaseTools
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using FileCaseIdMap = std::map<QString, int>;
|
using CaseFileNameAndId = std::pair<QString, int>;
|
||||||
|
using FileCaseIdMap = std::map<QString, int>;
|
||||||
|
|
||||||
static bool openEclipseCasesFromFile( const QStringList& fileNames,
|
static bool openEclipseCasesFromFile( const QStringList& fileNames,
|
||||||
bool createView,
|
bool createView,
|
||||||
@ -45,7 +47,9 @@ public:
|
|||||||
|
|
||||||
static bool openEclipseCaseShowTimeStepFilter( const QString& fileName );
|
static bool openEclipseCaseShowTimeStepFilter( const QString& fileName );
|
||||||
|
|
||||||
static int openEclipseInputCaseFromFileNames( const QStringList& fileNames, bool createDefaultView );
|
static CaseFileNameAndId openEclipseInputCaseAndPropertiesFromFileNames( const QStringList& fileNames, bool createDefaultView );
|
||||||
|
static std::vector<int> openEclipseInputCasesFromFileNames( const QStringList& fileNames, bool createDefaultView );
|
||||||
|
|
||||||
static bool openMockModel( const QString& name );
|
static bool openMockModel( const QString& name );
|
||||||
|
|
||||||
static bool addEclipseCases( const QStringList& fileNames, RimIdenticalGridCaseGroup** resultingCaseGroup = nullptr );
|
static bool addEclipseCases( const QStringList& fileNames, RimIdenticalGridCaseGroup** resultingCaseGroup = nullptr );
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include "RicImportSummaryCasesFeature.h"
|
#include "RicImportSummaryCasesFeature.h"
|
||||||
|
|
||||||
|
#include "RifEclipseInputFileTools.h"
|
||||||
#include "RifRoffFileTools.h"
|
#include "RifRoffFileTools.h"
|
||||||
|
|
||||||
#include "RimRoffCase.h"
|
#include "RimRoffCase.h"
|
||||||
@ -93,7 +94,7 @@ RicImportGeneralDataFeature::OpenCaseResults
|
|||||||
}
|
}
|
||||||
if ( !eclipseInputFiles.empty() )
|
if ( !eclipseInputFiles.empty() )
|
||||||
{
|
{
|
||||||
if ( !openInputEclipseCaseFromFileNames( eclipseInputFiles, createDefaultView, results.createdCaseIds ) )
|
if ( !openEclipseInputFilesFromFileNames( eclipseInputFiles, createDefaultView, results.createdCaseIds ) )
|
||||||
{
|
{
|
||||||
return OpenCaseResults();
|
return OpenCaseResults();
|
||||||
}
|
}
|
||||||
@ -331,23 +332,6 @@ bool RicImportGeneralDataFeature::openEclipseCaseFromFileNames( const QStringLis
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
bool RicImportGeneralDataFeature::openInputEclipseCaseFromFileNames( const QStringList& fileNames,
|
|
||||||
bool createDefaultView,
|
|
||||||
std::vector<int>& createdCaseIds )
|
|
||||||
{
|
|
||||||
auto generatedCaseId = RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( fileNames, createDefaultView );
|
|
||||||
if ( generatedCaseId >= 0 )
|
|
||||||
{
|
|
||||||
RiaApplication::instance()->addToRecentFiles( fileNames[0] );
|
|
||||||
createdCaseIds.push_back( generatedCaseId );
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -366,19 +350,109 @@ bool RicImportGeneralDataFeature::openSummaryCaseFromFileNames( const QStringLis
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RicImportGeneralDataFeature::openEclipseInputFilesFromFileNames( const QStringList& fileNames,
|
||||||
|
bool createDefaultView,
|
||||||
|
std::vector<int>& createdCaseIds )
|
||||||
|
{
|
||||||
|
if ( fileNames.empty() ) return false;
|
||||||
|
|
||||||
|
// For single file - assume grid and perform open - to prevent multiple read of grid files
|
||||||
|
if ( fileNames.size() == 1 )
|
||||||
|
{
|
||||||
|
return openGrdeclCaseAndPropertiesFromFileNames( fileNames, createDefaultView, createdCaseIds );
|
||||||
|
}
|
||||||
|
|
||||||
|
auto numGridCases =
|
||||||
|
static_cast<int>( std::count_if( fileNames.begin(),
|
||||||
|
fileNames.end(),
|
||||||
|
[]( const auto& fileName ) { return RifEclipseInputFileTools::hasGridData( fileName ); } ) );
|
||||||
|
|
||||||
|
if ( numGridCases != fileNames.size() && numGridCases != 1 )
|
||||||
|
{
|
||||||
|
RiaLogging::error( "Select only grid case files or 1 grid case file with N property files" );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( numGridCases == 1 )
|
||||||
|
{
|
||||||
|
// Open single grid case and connected property files
|
||||||
|
return openGrdeclCaseAndPropertiesFromFileNames( fileNames, createDefaultView, createdCaseIds );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Open multiple grid cases
|
||||||
|
return openGrdeclCasesFromFileNames( fileNames, createDefaultView, createdCaseIds );
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
/// Assumes N files containing grid info - each file must be grid case
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RicImportGeneralDataFeature::openGrdeclCasesFromFileNames( const QStringList& fileNames,
|
||||||
|
bool createDefaultView,
|
||||||
|
std::vector<int>& createdCaseIds )
|
||||||
|
{
|
||||||
|
if ( fileNames.empty() ) return false;
|
||||||
|
|
||||||
|
const size_t initialNumCases = createdCaseIds.size();
|
||||||
|
const auto generatedCaseIds = RiaImportEclipseCaseTools::openEclipseInputCasesFromFileNames( fileNames, createDefaultView );
|
||||||
|
|
||||||
|
if ( fileNames.size() == static_cast<int>( generatedCaseIds.size() ) )
|
||||||
|
{
|
||||||
|
RiaLogging::error( "Expected to create one eclipse case per file provided" );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( int i = 0; i < fileNames.size(); ++i )
|
||||||
|
{
|
||||||
|
const auto caseId = generatedCaseIds[static_cast<size_t>( i )];
|
||||||
|
if ( caseId >= 0 )
|
||||||
|
{
|
||||||
|
RiaApplication::instance()->addToRecentFiles( fileNames[i] );
|
||||||
|
createdCaseIds.push_back( caseId );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return initialNumCases != createdCaseIds.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
/// Assuming 1 file with grid data and N files with property info for respective grid file
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RicImportGeneralDataFeature::openGrdeclCaseAndPropertiesFromFileNames( const QStringList& fileNames,
|
||||||
|
bool createDefaultView,
|
||||||
|
std::vector<int>& createdCaseIds )
|
||||||
|
{
|
||||||
|
if ( fileNames.empty() ) return false;
|
||||||
|
|
||||||
|
const auto [caseFileName, generatedCaseId] =
|
||||||
|
RiaImportEclipseCaseTools::openEclipseInputCaseAndPropertiesFromFileNames( fileNames, createDefaultView );
|
||||||
|
if ( generatedCaseId >= 0 )
|
||||||
|
{
|
||||||
|
RiaApplication::instance()->addToRecentFiles( caseFileName );
|
||||||
|
createdCaseIds.push_back( generatedCaseId );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool RicImportGeneralDataFeature::openRoffFilesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds )
|
bool RicImportGeneralDataFeature::openRoffFilesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds )
|
||||||
{
|
{
|
||||||
CAF_ASSERT( !fileNames.empty() );
|
if ( fileNames.empty() ) return false;
|
||||||
|
|
||||||
auto numGridCases = static_cast<int>(
|
auto numGridCases = static_cast<int>(
|
||||||
std::count_if( fileNames.begin(), fileNames.end(), []( const auto& fileName ) { return RifRoffFileTools::hasGridData( fileName ); } ) );
|
std::count_if( fileNames.begin(), fileNames.end(), []( const auto& fileName ) { return RifRoffFileTools::hasGridData( fileName ); } ) );
|
||||||
|
|
||||||
if ( numGridCases != fileNames.size() && numGridCases != 1 )
|
if ( numGridCases != fileNames.size() && numGridCases != 1 )
|
||||||
{
|
{
|
||||||
RiaLogging::error( "Select only grid case files or 1 grid case file with N property files!" );
|
RiaLogging::error( "Select only grid case files or 1 grid case file with N property files" );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -401,12 +475,15 @@ bool RicImportGeneralDataFeature::openRoffFilesFromFileNames( const QStringList&
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool RicImportGeneralDataFeature::openRoffCasesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds )
|
bool RicImportGeneralDataFeature::openRoffCasesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds )
|
||||||
{
|
{
|
||||||
CAF_ASSERT( !fileNames.empty() );
|
if ( fileNames.empty() ) return false;
|
||||||
|
|
||||||
const size_t initialNumCases = createdCaseIds.size();
|
const size_t initialNumCases = createdCaseIds.size();
|
||||||
auto generatedCaseIds = RiaImportEclipseCaseTools::openRoffCasesFromFileNames( fileNames, createDefaultView );
|
auto generatedCaseIds = RiaImportEclipseCaseTools::openRoffCasesFromFileNames( fileNames, createDefaultView );
|
||||||
|
|
||||||
CAF_ASSERT( fileNames.size() == static_cast<int>( generatedCaseIds.size() ) && "Expected to create one roff case per file provided" );
|
if ( fileNames.size() == static_cast<int>( generatedCaseIds.size() ) )
|
||||||
|
{
|
||||||
|
RiaLogging::error( "Expected to create one roff case per file provided" );
|
||||||
|
}
|
||||||
|
|
||||||
for ( int i = 0; i < fileNames.size(); ++i )
|
for ( int i = 0; i < fileNames.size(); ++i )
|
||||||
{
|
{
|
||||||
@ -427,7 +504,7 @@ bool RicImportGeneralDataFeature::openRoffCaseAndPropertiesFromFileNames( const
|
|||||||
bool createDefaultView,
|
bool createDefaultView,
|
||||||
std::vector<int>& createdCaseIds )
|
std::vector<int>& createdCaseIds )
|
||||||
{
|
{
|
||||||
CAF_ASSERT( !fileNames.empty() );
|
if ( fileNames.empty() ) return false;
|
||||||
|
|
||||||
auto gridCaseItr =
|
auto gridCaseItr =
|
||||||
std::find_if( fileNames.begin(), fileNames.end(), []( const auto& fileName ) { return RifRoffFileTools::hasGridData( fileName ); } );
|
std::find_if( fileNames.begin(), fileNames.end(), []( const auto& fileName ) { return RifRoffFileTools::hasGridData( fileName ); } );
|
||||||
|
@ -74,9 +74,14 @@ protected:
|
|||||||
bool createDefaultView,
|
bool createDefaultView,
|
||||||
std::vector<int>& createdCaseIds,
|
std::vector<int>& createdCaseIds,
|
||||||
std::shared_ptr<RifReaderSettings> readerSettings );
|
std::shared_ptr<RifReaderSettings> readerSettings );
|
||||||
static bool openInputEclipseCaseFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds );
|
|
||||||
static bool openSummaryCaseFromFileNames( const QStringList& fileNames, bool doCreateDefaultPlot = true );
|
static bool openSummaryCaseFromFileNames( const QStringList& fileNames, bool doCreateDefaultPlot = true );
|
||||||
|
|
||||||
|
static bool openEclipseInputFilesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds );
|
||||||
|
static bool openGrdeclCasesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds );
|
||||||
|
static bool
|
||||||
|
openGrdeclCaseAndPropertiesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds );
|
||||||
|
|
||||||
static bool openRoffFilesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds );
|
static bool openRoffFilesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds );
|
||||||
static bool openRoffCasesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds );
|
static bool openRoffCasesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds );
|
||||||
static bool openRoffCaseAndPropertiesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds );
|
static bool openRoffCaseAndPropertiesFromFileNames( const QStringList& fileNames, bool createDefaultView, std::vector<int>& createdCaseIds );
|
||||||
|
@ -1401,6 +1401,23 @@ cvf::StructGridInterface::FaceEnum RifEclipseInputFileTools::faceEnumFromText( c
|
|||||||
return cvf::StructGridInterface::NO_FACE;
|
return cvf::StructGridInterface::NO_FACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RifEclipseInputFileTools::hasGridData( const QString& fileName )
|
||||||
|
{
|
||||||
|
// Look for keyword "COORD" in file
|
||||||
|
// NOTE: If readKeywordAndValues is slow for large .GRDECL files, consider function in RifEclipseTextFileReader
|
||||||
|
// reading line for line and returns true on first hit of keyword. This prevents reading entire file on large cases
|
||||||
|
|
||||||
|
const auto keywordAndValues = RifEclipseTextFileReader::readKeywordAndValues( fileName.toStdString() );
|
||||||
|
auto coordKeywordItr = std::find_if( keywordAndValues.begin(),
|
||||||
|
keywordAndValues.end(),
|
||||||
|
[]( const auto& keywordAndValue ) { return keywordAndValue.keyword == "COORD"; } );
|
||||||
|
|
||||||
|
return coordKeywordItr != keywordAndValues.end();
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
/// The file pointer is pointing at the line following the FAULTS keyword.
|
/// The file pointer is pointing at the line following the FAULTS keyword.
|
||||||
/// Parse content of this keyword until end of file or
|
/// Parse content of this keyword until end of file or
|
||||||
|
@ -122,6 +122,8 @@ public:
|
|||||||
|
|
||||||
static cvf::StructGridInterface::FaceEnum faceEnumFromText( const QString& faceString );
|
static cvf::StructGridInterface::FaceEnum faceEnumFromText( const QString& faceString );
|
||||||
|
|
||||||
|
static bool hasGridData( const QString& fileName );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void readFaults( QFile& data, qint64 filePos, cvf::Collection<RigFault>* faults, bool* isEditKeywordDetected );
|
static void readFaults( QFile& data, qint64 filePos, cvf::Collection<RigFault>* faults, bool* isEditKeywordDetected );
|
||||||
|
|
||||||
|
@ -144,12 +144,9 @@ bool RimEclipseInputCase::openDataFileSet( const QStringList& fileNames )
|
|||||||
|
|
||||||
if ( this->eclipseCaseData()->mainGrid()->gridPointDimensions() == cvf::Vec3st( 0, 0, 0 ) )
|
if ( this->eclipseCaseData()->mainGrid()->gridPointDimensions() == cvf::Vec3st( 0, 0, 0 ) )
|
||||||
{
|
{
|
||||||
if ( !allErrorMessages.empty() )
|
for ( QString errorMessages : allErrorMessages )
|
||||||
{
|
{
|
||||||
for ( QString errorMessages : allErrorMessages )
|
RiaLogging::error( errorMessages );
|
||||||
{
|
|
||||||
RiaLogging::error( errorMessages );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false; // No grid present
|
return false; // No grid present
|
||||||
}
|
}
|
||||||
@ -174,7 +171,10 @@ bool RimEclipseInputCase::openDataFileSet( const QStringList& fileNames )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RifInputPropertyLoader::loadAndSynchronizeInputProperties( m_inputPropertyCollection, this->eclipseCaseData(), filesToRead, importFaults );
|
if ( !filesToRead.empty() )
|
||||||
|
{
|
||||||
|
RifInputPropertyLoader::loadAndSynchronizeInputProperties( m_inputPropertyCollection, this->eclipseCaseData(), filesToRead, importFaults );
|
||||||
|
}
|
||||||
|
|
||||||
if ( importFaults )
|
if ( importFaults )
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user