mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#5717 Properly reload input properties when reading eclipse result case.
This commit is contained in:
parent
b566ddbd4b
commit
b5c97ec750
@ -29,6 +29,7 @@
|
|||||||
#include "CompletionExportCommands/RicWellPathExportCompletionDataFeatureImpl.h"
|
#include "CompletionExportCommands/RicWellPathExportCompletionDataFeatureImpl.h"
|
||||||
|
|
||||||
#include "RicfCommandObject.h"
|
#include "RicfCommandObject.h"
|
||||||
|
#include "RifEclipseInputPropertyLoader.h"
|
||||||
#include "RifReaderSettings.h"
|
#include "RifReaderSettings.h"
|
||||||
|
|
||||||
#include "RigActiveCellInfo.h"
|
#include "RigActiveCellInfo.h"
|
||||||
@ -44,6 +45,7 @@
|
|||||||
#include "RimEclipseCellColors.h"
|
#include "RimEclipseCellColors.h"
|
||||||
#include "RimEclipseContourMapView.h"
|
#include "RimEclipseContourMapView.h"
|
||||||
#include "RimEclipseContourMapViewCollection.h"
|
#include "RimEclipseContourMapViewCollection.h"
|
||||||
|
#include "RimEclipseInputProperty.h"
|
||||||
#include "RimEclipseInputPropertyCollection.h"
|
#include "RimEclipseInputPropertyCollection.h"
|
||||||
#include "RimEclipsePropertyFilter.h"
|
#include "RimEclipsePropertyFilter.h"
|
||||||
#include "RimEclipsePropertyFilterCollection.h"
|
#include "RimEclipsePropertyFilterCollection.h"
|
||||||
@ -647,6 +649,46 @@ RimEclipseInputPropertyCollection* RimEclipseCase::inputPropertyCollection()
|
|||||||
return m_inputPropertyCollection();
|
return m_inputPropertyCollection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
std::vector<QString> RimEclipseCase::additionalFiles() const
|
||||||
|
{
|
||||||
|
std::vector<QString> additionalFiles;
|
||||||
|
for ( const RimEclipseInputProperty* inputProperty : m_inputPropertyCollection()->inputProperties() )
|
||||||
|
{
|
||||||
|
if ( inputProperty->fileName == gridFileName() ) continue;
|
||||||
|
|
||||||
|
additionalFiles.push_back( inputProperty->fileName().path() );
|
||||||
|
}
|
||||||
|
|
||||||
|
return additionalFiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
/// Loads input property data from the gridFile and additional files
|
||||||
|
/// Creates new InputProperties if necessary, and flags the unused ones as obsolete
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimEclipseCase::loadAndSyncronizeInputProperties( bool includeGridFileName )
|
||||||
|
{
|
||||||
|
// Make sure we actually have reservoir data
|
||||||
|
|
||||||
|
CVF_ASSERT( this->eclipseCaseData() );
|
||||||
|
CVF_ASSERT( this->eclipseCaseData()->mainGrid()->gridPointDimensions() != cvf::Vec3st( 0, 0, 0 ) );
|
||||||
|
|
||||||
|
// Then read the properties from all the files referenced by the InputReservoir
|
||||||
|
|
||||||
|
std::vector<QString> filenames;
|
||||||
|
for ( const QString& fileName : additionalFiles() )
|
||||||
|
{
|
||||||
|
filenames.push_back( fileName );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( includeGridFileName ) filenames.push_back( gridFileName() );
|
||||||
|
|
||||||
|
RifEclipseInputPropertyLoader::loadAndSyncronizeInputProperties( inputPropertyCollection(), eclipseCaseData(), filenames );
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -113,6 +113,8 @@ public:
|
|||||||
|
|
||||||
std::set<QString> sortedSimWellNames() const;
|
std::set<QString> sortedSimWellNames() const;
|
||||||
|
|
||||||
|
void loadAndSyncronizeInputProperties( bool includeGridFileName );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void initAfterRead() override;
|
void initAfterRead() override;
|
||||||
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
||||||
@ -124,6 +126,7 @@ protected:
|
|||||||
protected:
|
protected:
|
||||||
void computeCachedData();
|
void computeCachedData();
|
||||||
void setReservoirData( RigEclipseCaseData* eclipseCase );
|
void setReservoirData( RigEclipseCaseData* eclipseCase );
|
||||||
|
std::vector<QString> additionalFiles() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void createTimeStepFormatString();
|
void createTimeStepFormatString();
|
||||||
|
@ -216,7 +216,7 @@ bool RimEclipseInputCase::openEclipseGridFile()
|
|||||||
this->eclipseCaseData()->mainGrid()->setFlipAxis( m_flipXAxis, m_flipYAxis );
|
this->eclipseCaseData()->mainGrid()->setFlipAxis( m_flipXAxis, m_flipYAxis );
|
||||||
|
|
||||||
computeCachedData();
|
computeCachedData();
|
||||||
loadAndSyncronizeInputProperties();
|
loadAndSyncronizeInputProperties( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
RiaApplication* app = RiaApplication::instance();
|
RiaApplication* app = RiaApplication::instance();
|
||||||
@ -240,29 +240,6 @@ void RimEclipseInputCase::reloadEclipseGridFile()
|
|||||||
openReserviorCase();
|
openReserviorCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
/// Loads input property data from the gridFile and additional files
|
|
||||||
/// Creates new InputProperties if necessary, and flags the unused ones as obsolete
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimEclipseInputCase::loadAndSyncronizeInputProperties()
|
|
||||||
{
|
|
||||||
// Make sure we actually have reservoir data
|
|
||||||
|
|
||||||
CVF_ASSERT( this->eclipseCaseData() );
|
|
||||||
CVF_ASSERT( this->eclipseCaseData()->mainGrid()->gridPointDimensions() != cvf::Vec3st( 0, 0, 0 ) );
|
|
||||||
|
|
||||||
// Then read the properties from all the files referenced by the InputReservoir
|
|
||||||
|
|
||||||
std::vector<QString> filenames;
|
|
||||||
for ( const QString& fileName : additionalFiles() )
|
|
||||||
{
|
|
||||||
filenames.push_back( fileName );
|
|
||||||
}
|
|
||||||
filenames.push_back( gridFileName() );
|
|
||||||
|
|
||||||
RifEclipseInputPropertyLoader::loadAndSyncronizeInputProperties( inputPropertyCollection(), eclipseCaseData(), filenames );
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -372,19 +349,3 @@ void RimEclipseInputCase::updateAdditionalFileFolder( const QString& newFolder )
|
|||||||
inputProperty->fileName = newFilePath.absoluteFilePath();
|
inputProperty->fileName = newFilePath.absoluteFilePath();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
std::vector<QString> RimEclipseInputCase::additionalFiles() const
|
|
||||||
{
|
|
||||||
std::vector<QString> additionalFiles;
|
|
||||||
for ( const RimEclipseInputProperty* inputProperty : m_inputPropertyCollection()->inputProperties() )
|
|
||||||
{
|
|
||||||
if ( inputProperty->fileName == gridFileName() ) continue;
|
|
||||||
|
|
||||||
additionalFiles.push_back( inputProperty->fileName().path() );
|
|
||||||
}
|
|
||||||
|
|
||||||
return additionalFiles;
|
|
||||||
}
|
|
||||||
|
@ -47,7 +47,6 @@ public:
|
|||||||
// File open methods
|
// File open methods
|
||||||
bool openDataFileSet( const QStringList& fileNames );
|
bool openDataFileSet( const QStringList& fileNames );
|
||||||
bool importAsciiInputProperties( const QStringList& fileNames ) override;
|
bool importAsciiInputProperties( const QStringList& fileNames ) override;
|
||||||
void loadAndSyncronizeInputProperties();
|
|
||||||
|
|
||||||
// RimCase overrides
|
// RimCase overrides
|
||||||
bool openEclipseGridFile() override;
|
bool openEclipseGridFile() override;
|
||||||
@ -60,9 +59,6 @@ public:
|
|||||||
|
|
||||||
void updateAdditionalFileFolder( const QString& newFolder );
|
void updateAdditionalFileFolder( const QString& newFolder );
|
||||||
|
|
||||||
private:
|
|
||||||
std::vector<QString> additionalFiles() const;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
||||||
|
|
||||||
|
@ -202,6 +202,7 @@ bool RimEclipseResultCase::importGridAndResultMetaData( bool showTimeStepFilter
|
|||||||
|
|
||||||
progInfo.setProgressDescription( "Computing Case Cache" );
|
progInfo.setProgressDescription( "Computing Case Cache" );
|
||||||
computeCachedData();
|
computeCachedData();
|
||||||
|
loadAndSyncronizeInputProperties( false );
|
||||||
|
|
||||||
m_gridAndWellDataIsReadFromFile = true;
|
m_gridAndWellDataIsReadFromFile = true;
|
||||||
m_activeCellInfoIsReadFromFile = true;
|
m_activeCellInfoIsReadFromFile = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user