mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Import faults when using omp common file reader, too
This commit is contained in:
@@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user