mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-09 23:16:00 -06:00
Fault Reactivation Assessment: updates and tweaks (#7732)
* Add flag to keep temp. parameter files or not. * Ask user if it is ok to clean the output folder if selected. * Add property for elastic table input file. * Do not show legend by default when refreshing tsurfs * Make sure all loadsteps are enabled in post processing json file * Support running adv. proc without req. basic proc to be run first
This commit is contained in:
parent
33ac79d856
commit
ae7285b478
@ -21,6 +21,7 @@
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaPreferences.h"
|
||||
|
||||
#include "cafPdmUiCheckBoxEditor.h"
|
||||
#include "cafPdmUiFilePathEditor.h"
|
||||
|
||||
#include <QFile>
|
||||
@ -62,6 +63,15 @@ RiaPreferencesGeoMech::RiaPreferencesGeoMech()
|
||||
"" );
|
||||
m_geomechFRADefaultAdvXML.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() );
|
||||
m_geomechFRADefaultAdvXML.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::TOP );
|
||||
|
||||
CAF_PDM_InitField( &m_keepTemporaryFiles,
|
||||
"keepTemporaryFile",
|
||||
false,
|
||||
"Keep temporary parameter files (for debugging)",
|
||||
"",
|
||||
"",
|
||||
"" );
|
||||
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_keepTemporaryFiles );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -87,6 +97,9 @@ void RiaPreferencesGeoMech::appendItems( caf::PdmUiOrdering& uiOrdering ) const
|
||||
caf::PdmUiGroup* paramGroup = faultRAGroup->addNewGroup( "Parameters" );
|
||||
paramGroup->add( &m_geomechFRADefaultBasicXML );
|
||||
paramGroup->add( &m_geomechFRADefaultAdvXML );
|
||||
|
||||
caf::PdmUiGroup* settingsGroup = faultRAGroup->addNewGroup( "Settings" );
|
||||
settingsGroup->add( &m_keepTemporaryFiles );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -136,6 +149,14 @@ QString RiaPreferencesGeoMech::geomechFRADefaultAdvXML() const
|
||||
return m_geomechFRADefaultAdvXML;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiaPreferencesGeoMech::keepTemporaryFiles() const
|
||||
{
|
||||
return m_keepTemporaryFiles;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -43,6 +43,7 @@ public:
|
||||
QString geomechFRAMacrisCommand() const;
|
||||
QString geomechFRADefaultBasicXML() const;
|
||||
QString geomechFRADefaultAdvXML() const;
|
||||
bool keepTemporaryFiles() const;
|
||||
|
||||
protected:
|
||||
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
||||
@ -53,4 +54,5 @@ private:
|
||||
caf::PdmField<QString> m_geomechFRAMacrisCommand;
|
||||
caf::PdmField<QString> m_geomechFRADefaultBasicXML;
|
||||
caf::PdmField<QString> m_geomechFRADefaultAdvXML;
|
||||
caf::PdmField<bool> m_keepTemporaryFiles;
|
||||
};
|
||||
|
@ -77,6 +77,21 @@ void RicNewFaultReactAssessmentFeature::onActionTriggered( bool isChecked )
|
||||
// ask user for preprocessing settings
|
||||
if ( !showSettingsGUI( frapSettings ) ) return;
|
||||
|
||||
if ( frapSettings.cleanBaseDirectory() )
|
||||
{
|
||||
auto reply = QMessageBox::question( nullptr,
|
||||
QString( "Clean output directory" ),
|
||||
QString( "Are you sure you want to delete all files and subfolders in the "
|
||||
"selected output directory?\n%1 " )
|
||||
.arg( frapSettings.outputBaseDirectory() ),
|
||||
QMessageBox::Yes | QMessageBox::No,
|
||||
QMessageBox::No );
|
||||
if ( reply == QMessageBox::No )
|
||||
{
|
||||
frapSettings.setCleanBaseDirectory( false );
|
||||
}
|
||||
}
|
||||
|
||||
// make sure our work dir is there
|
||||
prepareDirectory( frapSettings.outputBaseDirectory(), frapSettings.cleanBaseDirectory() );
|
||||
|
||||
@ -181,7 +196,10 @@ bool RicNewFaultReactAssessmentFeature::showSettingsGUI( RimFaultRAPreprocSettin
|
||||
"Fault Reactivation Assessment Preprocessing",
|
||||
"",
|
||||
QDialogButtonBox::Ok | QDialogButtonBox::Cancel );
|
||||
propertyDialog.resize( QSize( 400, 420 ) );
|
||||
if ( settings.geoMechSelected() )
|
||||
propertyDialog.resize( QSize( 520, 520 ) );
|
||||
else
|
||||
propertyDialog.resize( QSize( 520, 420 ) );
|
||||
|
||||
// make sure we always have an eclipse case selected
|
||||
while ( true )
|
||||
@ -277,11 +295,12 @@ void RicNewFaultReactAssessmentFeature::addParameterFileForCleanUp( QString file
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicNewFaultReactAssessmentFeature::cleanUpParameterFiles()
|
||||
{
|
||||
#ifndef DEBUG
|
||||
// for ( auto& filename : m_parameterFilesToCleanUp )
|
||||
//{
|
||||
// if ( QFile::exists( filename ) ) QFile::remove( filename );
|
||||
//}
|
||||
#endif
|
||||
if ( !RiaPreferencesGeoMech::current()->keepTemporaryFiles() )
|
||||
{
|
||||
for ( auto& filename : m_parameterFilesToCleanUp )
|
||||
{
|
||||
if ( QFile::exists( filename ) ) QFile::remove( filename );
|
||||
}
|
||||
}
|
||||
m_parameterFilesToCleanUp.clear();
|
||||
}
|
||||
|
@ -154,12 +154,13 @@ void RicRunFaultReactAssessmentFeature::addParameterFileForCleanUp( QString file
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicRunFaultReactAssessmentFeature::cleanUpParameterFiles()
|
||||
{
|
||||
#ifndef DEBUG
|
||||
// for ( auto& filename : m_parameterFilesToCleanUp )
|
||||
//{
|
||||
// if ( QFile::exists( filename ) ) QFile::remove( filename );
|
||||
//}
|
||||
#endif
|
||||
if ( !RiaPreferencesGeoMech::current()->keepTemporaryFiles() )
|
||||
{
|
||||
for ( auto& filename : m_parameterFilesToCleanUp )
|
||||
{
|
||||
if ( QFile::exists( filename ) ) QFile::remove( filename );
|
||||
}
|
||||
}
|
||||
m_parameterFilesToCleanUp.clear();
|
||||
}
|
||||
|
||||
@ -202,8 +203,10 @@ void RicRunFaultReactAssessmentFeature::reloadSurfaces( RimFaultRASettings* sett
|
||||
// get rid of any files removed by the processing
|
||||
surfColl->removeMissingFileSurfaces();
|
||||
|
||||
bool showLegendInView = false;
|
||||
|
||||
// ask the collection to reload the existing files
|
||||
surfColl->reloadSurfaces( surfColl->surfaces() );
|
||||
surfColl->reloadSurfaces( surfColl->surfaces(), showLegendInView );
|
||||
|
||||
// get all the files in the folder, skip the ones we alreday have
|
||||
QStringList newFiles;
|
||||
@ -217,6 +220,5 @@ void RicRunFaultReactAssessmentFeature::reloadSurfaces( RimFaultRASettings* sett
|
||||
}
|
||||
|
||||
// import the new surfaces
|
||||
bool showLegendInView = false;
|
||||
surfColl->importSurfacesFromFiles( newFiles, showLegendInView );
|
||||
}
|
||||
|
@ -79,11 +79,13 @@ bool RifFaultRAJSonWriter::writeToPostprocFile( int faultID, RimFaultRASettings*
|
||||
stream << "\"MacrisCalcCalibration_path\": \"" + settings->advancedMacrisDatabase() + "\"," << endl;
|
||||
}
|
||||
|
||||
stream << "\"MacrisCalc_path\": \"" + settings->basicMacrisDatabase() + "\"," << endl;
|
||||
if ( QFile::exists( settings->basicMacrisDatabase() ) )
|
||||
stream << "\"MacrisCalc_path\": \"" + settings->basicMacrisDatabase() + "\"," << endl;
|
||||
|
||||
stream << "\"base_directory_path\": \"" + settings->outputBaseDirectory() + "\"," << endl;
|
||||
|
||||
QStringList timesteps;
|
||||
timesteps.push_back( QString::number( settings->startTimeStepEclipseIndex() ) );
|
||||
timesteps.push_back( QString::number( settings->endTimeStepEclipseIndex() ) );
|
||||
|
||||
stream << "\"tsurf_loadsteps\": [ " + timesteps.join( ',' ) + " ]" << endl;
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "cafPdmFieldScriptingCapability.h"
|
||||
#include "cafPdmObjectScriptingCapability.h"
|
||||
#include "cafPdmUiComboBoxEditor.h"
|
||||
#include "cafPdmUiFilePathEditor.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
@ -62,6 +63,10 @@ RimFaultRAPreprocSettings::RimFaultRAPreprocSettings()
|
||||
|
||||
CAF_PDM_InitField( &m_cleanBaseDir, "CleanBaseDir", false, "Clean Output Directory", "", "", "" );
|
||||
CAF_PDM_InitField( &m_smoothEclipseData, "SmoothEclipseData", true, "Smooth Eclipse Data", "", "", "" );
|
||||
|
||||
CAF_PDM_InitField( &m_elasticTableFilename, "ElasticTableFilename", QString( "" ), "Elastic Table", "", "", "" );
|
||||
m_elasticTableFilename.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() );
|
||||
m_elasticTableFilename.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -104,6 +109,9 @@ void RimFaultRAPreprocSettings::defineUiOrdering( QString uiConfigName, caf::Pdm
|
||||
geomechGroup->add( &m_geomechCase );
|
||||
geomechGroup->add( &m_startTimestepGeoMech );
|
||||
geomechGroup->add( &m_endTimestepGeoMech );
|
||||
|
||||
auto tableGroup = uiOrdering.addNewGroup( "Elastic Table" );
|
||||
tableGroup->add( &m_elasticTableFilename );
|
||||
}
|
||||
|
||||
auto eclipseGroup = uiOrdering.addNewGroup( "Eclipse Model" );
|
||||
@ -271,6 +279,14 @@ QString RimFaultRAPreprocSettings::geomechCaseFilename() const
|
||||
return "";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimFaultRAPreprocSettings::elasticTableFilename() const
|
||||
{
|
||||
return m_elasticTableFilename();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -295,6 +311,14 @@ bool RimFaultRAPreprocSettings::cleanBaseDirectory() const
|
||||
return m_cleanBaseDir();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFaultRAPreprocSettings::setCleanBaseDirectory( bool clean )
|
||||
{
|
||||
m_cleanBaseDir = clean;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -55,8 +55,11 @@ public:
|
||||
|
||||
QString eclipseCaseFilename() const;
|
||||
QString geomechCaseFilename() const;
|
||||
bool cleanBaseDirectory() const;
|
||||
bool smoothEclipseData() const;
|
||||
QString elasticTableFilename() const;
|
||||
|
||||
bool cleanBaseDirectory() const;
|
||||
void setCleanBaseDirectory( bool clean );
|
||||
|
||||
bool geoMechSelected() const;
|
||||
|
||||
@ -90,4 +93,5 @@ protected:
|
||||
caf::PdmPtrField<RimGeoMechCase*> m_geomechCase;
|
||||
caf::PdmField<QString> m_baseDir;
|
||||
caf::PdmField<bool> m_cleanBaseDir;
|
||||
caf::PdmField<QString> m_elasticTableFilename;
|
||||
};
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include "cafPdmFieldScriptingCapability.h"
|
||||
#include "cafPdmObjectScriptingCapability.h"
|
||||
#include "cafPdmUiComboBoxEditor.h"
|
||||
#include "cafPdmUiFilePathEditor.h"
|
||||
#include "cafPdmUiTableViewEditor.h"
|
||||
|
||||
#include <QFileInfo>
|
||||
@ -63,6 +64,10 @@ RimFaultRASettings::RimFaultRASettings()
|
||||
CAF_PDM_InitFieldNoDefault( &m_baseDir, "BaseDir", "Working Directory", "", "", "" );
|
||||
m_baseDir.uiCapability()->setUiReadOnly( true );
|
||||
|
||||
CAF_PDM_InitField( &m_elasticTableFilename, "ElasticTableFilename", QString( "" ), "Elastic Table", "", "", "" );
|
||||
m_elasticTableFilename.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() );
|
||||
m_elasticTableFilename.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::TOP );
|
||||
|
||||
CAF_PDM_InitField( &m_startTimestepEclipse, "StartTimeStepEclipse", 0, "Start Time Step", "", "", "" );
|
||||
m_startTimestepEclipse.uiCapability()->setUiEditorTypeName( caf::PdmUiComboBoxEditor::uiEditorTypeName() );
|
||||
CAF_PDM_InitField( &m_endTimestepEclipse, "EndTimeStepEclipse", 0, "End Time Step", "", "", "" );
|
||||
@ -85,6 +90,7 @@ RimFaultRASettings::RimFaultRASettings()
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_basicParametersRI, "BasicParametersRI", "Basic ResInsight Parameters", "", "", "" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_advancedParametersRI, "AdvancedParametersRI", "Advanced ResInsight Parameters", "", "", "" );
|
||||
|
||||
setupResInsightParameters();
|
||||
}
|
||||
|
||||
@ -154,6 +160,9 @@ void RimFaultRASettings::defineUiOrdering( QString uiConfigName, caf::PdmUiOrder
|
||||
auto geomechGroup = uiOrdering.addNewGroup( "GeoMech Time Steps" );
|
||||
geomechGroup->add( &m_startTimestepGeoMech );
|
||||
geomechGroup->add( &m_endTimestepGeoMech );
|
||||
|
||||
auto tableGroup = uiOrdering.addNewGroup( "Additional Settings" );
|
||||
tableGroup->add( &m_elasticTableFilename );
|
||||
}
|
||||
uiOrdering.skipRemainingFields( true );
|
||||
}
|
||||
@ -247,6 +256,7 @@ void RimFaultRASettings::initFromPreprocSettings( RimFaultRAPreprocSettings* pre
|
||||
m_endTimestepEclipse = preprocSettings->endTimeStepEclipseIndex();
|
||||
m_startTimestepGeoMech = preprocSettings->startTimeStepGeoMechIndex();
|
||||
m_endTimestepGeoMech = preprocSettings->endTimeStepGeoMechIndex();
|
||||
m_elasticTableFilename = preprocSettings->elasticTableFilename();
|
||||
|
||||
QString errorText;
|
||||
|
||||
@ -455,7 +465,7 @@ void RimFaultRASettings::setupResInsightParameters()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimFaultRASettings::elasticPropertiesFilename() const
|
||||
{
|
||||
return m_baseDir + "/Abaqus/ELASTIC_TABLE_res.inp";
|
||||
return m_elasticTableFilename;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -101,6 +101,7 @@ private:
|
||||
caf::PdmPtrField<RimEclipseCase*> m_eclipseCase;
|
||||
caf::PdmPtrField<RimGeoMechCase*> m_geomechCase;
|
||||
caf::PdmField<QString> m_baseDir;
|
||||
caf::PdmField<QString> m_elasticTableFilename;
|
||||
|
||||
caf::PdmField<int> m_startTimestepEclipse;
|
||||
caf::PdmField<int> m_endTimestepEclipse;
|
||||
|
@ -163,7 +163,7 @@ RimSurface* RimSurfaceCollection::importSurfacesFromFiles( const QStringList& fi
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSurfaceCollection::reloadSurfaces( std::vector<RimSurface*> surfaces )
|
||||
void RimSurfaceCollection::reloadSurfaces( std::vector<RimSurface*> surfaces, bool showLegend /*=true*/ )
|
||||
{
|
||||
// ask the surfaces given to reload its data
|
||||
for ( RimSurface* surface : surfaces )
|
||||
@ -173,7 +173,7 @@ void RimSurfaceCollection::reloadSurfaces( std::vector<RimSurface*> surfaces )
|
||||
|
||||
this->updateConnectedEditors();
|
||||
|
||||
updateViews( surfaces );
|
||||
updateViews( surfaces, showLegend );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -47,7 +47,7 @@ public:
|
||||
bool containsFileSurface( QString filename );
|
||||
bool containsSurface();
|
||||
|
||||
void reloadSurfaces( std::vector<RimSurface*> surfaces );
|
||||
void reloadSurfaces( std::vector<RimSurface*> surfaces, bool showLegend = true );
|
||||
void removeSurface( RimSurface* surface );
|
||||
void removeMissingFileSurfaces();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user