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;
|
if ( !RifEclipseOutputFileTools::findSiblingFilesWithSameBaseName( fileName, &fileSet ) ) return false;
|
||||||
|
|
||||||
m_fileName = fileName;
|
m_fileName = fileName;
|
||||||
|
m_filesWithSameBaseName = fileSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
ecl_grid_type* mainEclGrid = nullptr;
|
ecl_grid_type* mainEclGrid = nullptr;
|
||||||
{
|
{
|
||||||
auto task = progress.task( "Open Init File and Load Main Grid", 19 );
|
auto task = progress.task( "Open Init File and Load Main Grid", 19 );
|
||||||
// Keep the set of files of interest
|
|
||||||
m_filesWithSameBaseName = fileSet;
|
|
||||||
|
|
||||||
openInitFile();
|
openInitFile();
|
||||||
|
|
||||||
@@ -608,39 +607,6 @@ const size_t* RifReaderEclipseOutput::eclipseCellIndexMapping()
|
|||||||
return cellMappingECLRi;
|
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 well_segment_type* segment,
|
||||||
const char* wellName );
|
const char* wellName );
|
||||||
|
|
||||||
void importFaults( const QStringList& fileSet, cvf::Collection<RigFault>* faults );
|
|
||||||
|
|
||||||
void openInitFile();
|
void openInitFile();
|
||||||
|
|
||||||
void extractResultValuesBasedOnPorosityModel( RiaDefines::PorosityModelType matrixOrFracture,
|
void extractResultValuesBasedOnPorosityModel( RiaDefines::PorosityModelType matrixOrFracture,
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include "RiaPreferences.h"
|
#include "RiaPreferences.h"
|
||||||
|
|
||||||
|
#include "RifEclipseInputFileTools.h"
|
||||||
#include "RifReaderSettings.h"
|
#include "RifReaderSettings.h"
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -144,3 +145,36 @@ void RifReaderInterface::setReaderSettings( std::shared_ptr<RifReaderSettings> r
|
|||||||
{
|
{
|
||||||
m_readerSettings = readerSettings;
|
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 "RiaDefines.h"
|
||||||
#include "RiaPorosityModel.h"
|
#include "RiaPorosityModel.h"
|
||||||
|
|
||||||
|
#include "cvfCollection.h"
|
||||||
#include "cvfObject.h"
|
#include "cvfObject.h"
|
||||||
|
|
||||||
#include "cafPdmPointer.h"
|
#include "cafPdmPointer.h"
|
||||||
@@ -36,6 +37,7 @@
|
|||||||
|
|
||||||
class RigEclipseCaseData;
|
class RigEclipseCaseData;
|
||||||
class RifReaderSettings;
|
class RifReaderSettings;
|
||||||
|
class RigFault;
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
//
|
//
|
||||||
@@ -77,6 +79,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
bool isTimeStepIncludedByFilter( size_t timeStepIndex ) const;
|
bool isTimeStepIncludedByFilter( size_t timeStepIndex ) const;
|
||||||
size_t timeStepIndexOnFile( size_t timeStepIndex ) const;
|
size_t timeStepIndexOnFile( size_t timeStepIndex ) const;
|
||||||
|
void importFaults( const QStringList& fileSet, cvf::Collection<RigFault>* faults );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const RifReaderSettings* readerSettings() const;
|
const RifReaderSettings* readerSettings() const;
|
||||||
|
|||||||
@@ -31,6 +31,8 @@
|
|||||||
#include "RigSimWellData.h"
|
#include "RigSimWellData.h"
|
||||||
#include "RigWellResultFrame.h"
|
#include "RigWellResultFrame.h"
|
||||||
|
|
||||||
|
#include "cafProgressInfo.h"
|
||||||
|
|
||||||
#include "opm/input/eclipse/Deck/Deck.hpp"
|
#include "opm/input/eclipse/Deck/Deck.hpp"
|
||||||
#include "opm/input/eclipse/EclipseState/Runspec.hpp"
|
#include "opm/input/eclipse/EclipseState/Runspec.hpp"
|
||||||
#include "opm/input/eclipse/Parser/Parser.hpp"
|
#include "opm/input/eclipse/Parser/Parser.hpp"
|
||||||
@@ -65,6 +67,8 @@ RifReaderOpmCommon::~RifReaderOpmCommon()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool RifReaderOpmCommon::open( const QString& fileName, RigEclipseCaseData* eclipseCase )
|
bool RifReaderOpmCommon::open( const QString& fileName, RigEclipseCaseData* eclipseCase )
|
||||||
{
|
{
|
||||||
|
caf::ProgressInfo progress( 100, "Reading Grid" );
|
||||||
|
|
||||||
QStringList fileSet;
|
QStringList fileSet;
|
||||||
if ( !RifEclipseOutputFileTools::findSiblingFilesWithSameBaseName( fileName, &fileSet ) ) return false;
|
if ( !RifEclipseOutputFileTools::findSiblingFilesWithSameBaseName( fileName, &fileSet ) ) return false;
|
||||||
|
|
||||||
@@ -79,7 +83,24 @@ bool RifReaderOpmCommon::open( const QString& fileName, RigEclipseCaseData* ecli
|
|||||||
return false;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,9 +99,11 @@ RimEclipseCase::RimEclipseCase()
|
|||||||
CAF_PDM_InitField( &m_flipXAxis, "FlipXAxis", false, "Flip X Axis" );
|
CAF_PDM_InitField( &m_flipXAxis, "FlipXAxis", false, "Flip X Axis" );
|
||||||
CAF_PDM_InitField( &m_flipYAxis, "FlipYAxis", false, "Flip Y Axis" );
|
CAF_PDM_InitField( &m_flipYAxis, "FlipYAxis", false, "Flip Y Axis" );
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault( &m_filesContainingFaults_OBSOLETE, "CachedFileNamesContainingFaults", "" );
|
CAF_PDM_InitFieldNoDefault( &m_filesContainingFaults, "CachedFileNamesContainingFaults", "" );
|
||||||
m_filesContainingFaults_OBSOLETE.uiCapability()->setUiHidden( true );
|
m_filesContainingFaults.uiCapability()->setUiHidden( true );
|
||||||
m_filesContainingFaults_OBSOLETE.xmlCapability()->disableIO();
|
// 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" );
|
CAF_PDM_InitFieldNoDefault( &m_contourMapCollection, "ContourMaps", "2d Contour Maps" );
|
||||||
m_contourMapCollection = new RimEclipseContourMapViewCollection;
|
m_contourMapCollection = new RimEclipseContourMapViewCollection;
|
||||||
@@ -927,7 +929,7 @@ std::vector<QString> RimEclipseCase::filesContainingFaults() const
|
|||||||
{
|
{
|
||||||
std::vector<QString> stdPathList;
|
std::vector<QString> stdPathList;
|
||||||
|
|
||||||
for ( auto& filePath : m_filesContainingFaults_OBSOLETE() )
|
for ( auto& filePath : m_filesContainingFaults() )
|
||||||
{
|
{
|
||||||
stdPathList.push_back( filePath.path() );
|
stdPathList.push_back( filePath.path() );
|
||||||
}
|
}
|
||||||
@@ -946,7 +948,7 @@ void RimEclipseCase::setFilesContainingFaults( const std::vector<QString>& pathS
|
|||||||
filePaths.push_back( pathString );
|
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_matrixModelResults;
|
||||||
caf::PdmChildField<RimReservoirCellResultsStorage*> m_fractureModelResults;
|
caf::PdmChildField<RimReservoirCellResultsStorage*> m_fractureModelResults;
|
||||||
|
|
||||||
// To be removed as the caching of file names causes issues when using the project file as template
|
caf::PdmField<std::vector<caf::FilePath>> m_filesContainingFaults;
|
||||||
// https://github.com/OPM/ResInsight/issues/7308
|
|
||||||
caf::PdmField<std::vector<caf::FilePath>> m_filesContainingFaults_OBSOLETE;
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user