Import faults when using omp common file reader, too

This commit is contained in:
jonjenssen
2024-02-19 14:09:08 +01:00
committed by jonjenssen
parent 8fe82423ae
commit 9ac4b38cae
7 changed files with 69 additions and 47 deletions

View File

@@ -379,14 +379,13 @@ bool RifReaderEclipseOutput::open( const QString& fileName, RigEclipseCaseData*
if ( !RifEclipseOutputFileTools::findSiblingFilesWithSameBaseName( fileName, &fileSet ) ) return false;
m_fileName = fileName;
m_fileName = fileName;
m_filesWithSameBaseName = fileSet;
}
ecl_grid_type* mainEclGrid = nullptr;
{
auto task = progress.task( "Open Init File and Load Main Grid", 19 );
// Keep the set of files of interest
m_filesWithSameBaseName = fileSet;
openInitFile();
@@ -608,39 +607,6 @@ const size_t* RifReaderEclipseOutput::eclipseCellIndexMapping()
return cellMappingECLRi;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RifReaderEclipseOutput::importFaults( const QStringList& fileSet, cvf::Collection<RigFault>* faults )
{
if ( !filenamesWithFaults().empty() )
{
for ( size_t i = 0; i < filenamesWithFaults().size(); i++ )
{
QString faultFilename = filenamesWithFaults()[i];
RifEclipseInputFileTools::parseAndReadFaults( faultFilename, faults );
}
}
else
{
foreach ( QString fname, fileSet )
{
if ( fname.endsWith( ".DATA" ) )
{
std::vector<QString> filenamesWithFaults;
RifEclipseInputFileTools::readFaultsInGridSection( fname, faults, &filenamesWithFaults, faultIncludeFileAbsolutePathPrefix() );
std::sort( filenamesWithFaults.begin(), filenamesWithFaults.end() );
std::vector<QString>::iterator last = std::unique( filenamesWithFaults.begin(), filenamesWithFaults.end() );
filenamesWithFaults.erase( last, filenamesWithFaults.end() );
setFilenamesWithFaults( filenamesWithFaults );
}
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -103,8 +103,6 @@ private:
const well_segment_type* segment,
const char* wellName );
void importFaults( const QStringList& fileSet, cvf::Collection<RigFault>* faults );
void openInitFile();
void extractResultValuesBasedOnPorosityModel( RiaDefines::PorosityModelType matrixOrFracture,

View File

@@ -21,6 +21,7 @@
#include "RiaPreferences.h"
#include "RifEclipseInputFileTools.h"
#include "RifReaderSettings.h"
//--------------------------------------------------------------------------------------------------
@@ -144,3 +145,36 @@ void RifReaderInterface::setReaderSettings( std::shared_ptr<RifReaderSettings> r
{
m_readerSettings = readerSettings;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RifReaderInterface::importFaults( const QStringList& fileSet, cvf::Collection<RigFault>* faults )
{
if ( !filenamesWithFaults().empty() )
{
for ( size_t i = 0; i < filenamesWithFaults().size(); i++ )
{
QString faultFilename = filenamesWithFaults()[i];
RifEclipseInputFileTools::parseAndReadFaults( faultFilename, faults );
}
}
else
{
foreach ( QString fname, fileSet )
{
if ( fname.endsWith( ".DATA" ) )
{
std::vector<QString> filenamesWithFaults;
RifEclipseInputFileTools::readFaultsInGridSection( fname, faults, &filenamesWithFaults, faultIncludeFileAbsolutePathPrefix() );
std::sort( filenamesWithFaults.begin(), filenamesWithFaults.end() );
std::vector<QString>::iterator last = std::unique( filenamesWithFaults.begin(), filenamesWithFaults.end() );
filenamesWithFaults.erase( last, filenamesWithFaults.end() );
setFilenamesWithFaults( filenamesWithFaults );
}
}
}
}

View File

@@ -23,6 +23,7 @@
#include "RiaDefines.h"
#include "RiaPorosityModel.h"
#include "cvfCollection.h"
#include "cvfObject.h"
#include "cafPdmPointer.h"
@@ -36,6 +37,7 @@
class RigEclipseCaseData;
class RifReaderSettings;
class RigFault;
//==================================================================================================
//
@@ -77,6 +79,7 @@ public:
protected:
bool isTimeStepIncludedByFilter( size_t timeStepIndex ) const;
size_t timeStepIndexOnFile( size_t timeStepIndex ) const;
void importFaults( const QStringList& fileSet, cvf::Collection<RigFault>* faults );
private:
const RifReaderSettings* readerSettings() const;

View File

@@ -31,6 +31,8 @@
#include "RigSimWellData.h"
#include "RigWellResultFrame.h"
#include "cafProgressInfo.h"
#include "opm/input/eclipse/Deck/Deck.hpp"
#include "opm/input/eclipse/EclipseState/Runspec.hpp"
#include "opm/input/eclipse/Parser/Parser.hpp"
@@ -65,6 +67,8 @@ RifReaderOpmCommon::~RifReaderOpmCommon()
//--------------------------------------------------------------------------------------------------
bool RifReaderOpmCommon::open( const QString& fileName, RigEclipseCaseData* eclipseCase )
{
caf::ProgressInfo progress( 100, "Reading Grid" );
QStringList fileSet;
if ( !RifEclipseOutputFileTools::findSiblingFilesWithSameBaseName( fileName, &fileSet ) ) return false;
@@ -79,7 +83,24 @@ bool RifReaderOpmCommon::open( const QString& fileName, RigEclipseCaseData* ecli
return false;
}
buildMetaData( eclipseCase );
{
auto task = progress.task( "Reading faults", 25 );
if ( isFaultImportEnabled() )
{
cvf::Collection<RigFault> faults;
importFaults( fileSet, &faults );
RigMainGrid* mainGrid = eclipseCase->mainGrid();
mainGrid->setFaults( faults );
}
}
{
auto task = progress.task( "Reading Results Meta data", 50 );
buildMetaData( eclipseCase );
}
return true;
}

View File

@@ -99,9 +99,11 @@ RimEclipseCase::RimEclipseCase()
CAF_PDM_InitField( &m_flipXAxis, "FlipXAxis", false, "Flip X Axis" );
CAF_PDM_InitField( &m_flipYAxis, "FlipYAxis", false, "Flip Y Axis" );
CAF_PDM_InitFieldNoDefault( &m_filesContainingFaults_OBSOLETE, "CachedFileNamesContainingFaults", "" );
m_filesContainingFaults_OBSOLETE.uiCapability()->setUiHidden( true );
m_filesContainingFaults_OBSOLETE.xmlCapability()->disableIO();
CAF_PDM_InitFieldNoDefault( &m_filesContainingFaults, "CachedFileNamesContainingFaults", "" );
m_filesContainingFaults.uiCapability()->setUiHidden( true );
// Caching of file names causes issues when using the project file as template, do not save to disk
// https://github.com/OPM/ResInsight/issues/7308
m_filesContainingFaults.xmlCapability()->disableIO();
CAF_PDM_InitFieldNoDefault( &m_contourMapCollection, "ContourMaps", "2d Contour Maps" );
m_contourMapCollection = new RimEclipseContourMapViewCollection;
@@ -927,7 +929,7 @@ std::vector<QString> RimEclipseCase::filesContainingFaults() const
{
std::vector<QString> stdPathList;
for ( auto& filePath : m_filesContainingFaults_OBSOLETE() )
for ( auto& filePath : m_filesContainingFaults() )
{
stdPathList.push_back( filePath.path() );
}
@@ -946,7 +948,7 @@ void RimEclipseCase::setFilesContainingFaults( const std::vector<QString>& pathS
filePaths.push_back( pathString );
}
m_filesContainingFaults_OBSOLETE = filePaths;
m_filesContainingFaults = filePaths;
}
//--------------------------------------------------------------------------------------------------

View File

@@ -167,7 +167,5 @@ private:
caf::PdmChildField<RimReservoirCellResultsStorage*> m_matrixModelResults;
caf::PdmChildField<RimReservoirCellResultsStorage*> m_fractureModelResults;
// To be removed as the caching of file names causes issues when using the project file as template
// https://github.com/OPM/ResInsight/issues/7308
caf::PdmField<std::vector<caf::FilePath>> m_filesContainingFaults_OBSOLETE;
caf::PdmField<std::vector<caf::FilePath>> m_filesContainingFaults;
};