mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#7339 Move dynamic and static case from instance to template.
This commit is contained in:
parent
b68d3a5336
commit
ad0e07a540
@ -18,7 +18,10 @@
|
||||
|
||||
#include "RicNewStimPlanModelTemplateFeature.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
|
||||
#include "RimCompletionTemplateCollection.h"
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimStimPlanModelTemplate.h"
|
||||
@ -54,6 +57,16 @@ void RicNewStimPlanModelTemplateFeature::onActionTriggered( bool isChecked )
|
||||
RimStimPlanModelTemplate* stimPlanModelTemplate = new RimStimPlanModelTemplate;
|
||||
stimPlanModelTemplate->setName( RicFractureNameGenerator::nameForNewStimPlanModelTemplate() );
|
||||
|
||||
RimEclipseView* activeView = dynamic_cast<RimEclipseView*>( RiaApplication::instance()->activeGridView() );
|
||||
if ( activeView )
|
||||
{
|
||||
RimEclipseCase* eclipseCase = eclipseCase = activeView->eclipseCase();
|
||||
int timeStep = activeView->currentTimeStep();
|
||||
stimPlanModelTemplate->setDynamicEclipseCase( eclipseCase );
|
||||
stimPlanModelTemplate->setTimeStep( timeStep );
|
||||
stimPlanModelTemplate->setStaticEclipseCase( eclipseCase );
|
||||
}
|
||||
|
||||
fracModColl->addStimPlanModelTemplate( stimPlanModelTemplate );
|
||||
fracModColl->updateConnectedEditors();
|
||||
Riu3DMainWindowTools::selectAsCurrentItem( stimPlanModelTemplate );
|
||||
|
@ -137,9 +137,13 @@ RimStimPlanModel::RimStimPlanModel()
|
||||
m_editStimPlanModelTemplate.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN );
|
||||
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_eclipseCase, "EclipseCase", "Dynamic Case", "", "", "" );
|
||||
m_eclipseCase.uiCapability()->setUiReadOnly( true );
|
||||
|
||||
CAF_PDM_InitScriptableField( &m_timeStep, "TimeStep", 0, "Time Step", "", "", "" );
|
||||
m_timeStep.uiCapability()->setUiReadOnly( true );
|
||||
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_staticEclipseCase, "StaticEclipseCase", "Static Case", "", "", "" );
|
||||
m_staticEclipseCase.uiCapability()->setUiReadOnly( true );
|
||||
|
||||
CAF_PDM_InitScriptableField( &m_MD, "MeasuredDepth", 0.0, "Measured Depth", "", "", "" );
|
||||
m_MD.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||
@ -1559,9 +1563,11 @@ RimEclipseCase* RimStimPlanModel::eclipseCaseForProperty( RiaDefines::CurvePrope
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimStimPlanModel::setEclipseCase( RimEclipseCase* eclipseCase )
|
||||
{
|
||||
m_eclipseCase = eclipseCase;
|
||||
m_staticEclipseCase = eclipseCase;
|
||||
updateExtractionDepthBoundaries();
|
||||
if ( m_stimPlanModelTemplate )
|
||||
{
|
||||
m_stimPlanModelTemplate->setDynamicEclipseCase( eclipseCase );
|
||||
m_stimPlanModelTemplate->setStaticEclipseCase( eclipseCase );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1663,6 +1669,17 @@ RimStimPlanModelTemplate* RimStimPlanModel::stimPlanModelTemplate() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimStimPlanModel::stimPlanModelTemplateChanged( const caf::SignalEmitter* emitter )
|
||||
{
|
||||
if ( m_stimPlanModelTemplate() )
|
||||
{
|
||||
m_eclipseCase = m_stimPlanModelTemplate()->dynamicEclipseCase();
|
||||
m_timeStep = m_stimPlanModelTemplate()->timeStep();
|
||||
m_staticEclipseCase = m_stimPlanModelTemplate()->staticEclipseCase();
|
||||
updateExtractionDepthBoundaries();
|
||||
|
||||
updateThicknessDirection();
|
||||
updateBarrierProperties();
|
||||
}
|
||||
|
||||
updateViewsAndPlots();
|
||||
}
|
||||
|
||||
|
@ -60,6 +60,11 @@ RimStimPlanModelTemplate::RimStimPlanModelTemplate()
|
||||
CAF_PDM_InitScriptableField( &m_id, "Id", -1, "ID", "", "", "" );
|
||||
m_id.uiCapability()->setUiReadOnly( true );
|
||||
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_dynamicEclipseCase, "DynamicEclipseCase", "Dynamic Case", "", "", "" );
|
||||
CAF_PDM_InitScriptableField( &m_timeStep, "TimeStep", 0, "Time Step", "", "", "" );
|
||||
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_staticEclipseCase, "StaticEclipseCase", "Static Case", "", "", "" );
|
||||
|
||||
CAF_PDM_InitScriptableField( &m_defaultPorosity,
|
||||
"DefaultPorosity",
|
||||
RiaDefines::defaultPorosity(),
|
||||
@ -178,6 +183,16 @@ void RimStimPlanModelTemplate::fieldChangedByUi( const caf::PdmFieldHandle* chan
|
||||
const QVariant& oldValue,
|
||||
const QVariant& newValue )
|
||||
{
|
||||
if ( changedField == &m_dynamicEclipseCase )
|
||||
{
|
||||
// Set a valid default time step
|
||||
const int timeStepCount = m_dynamicEclipseCase->timeStepStrings().size();
|
||||
if ( timeStepCount > 0 )
|
||||
{
|
||||
m_timeStep = timeStepCount - 1;
|
||||
}
|
||||
}
|
||||
|
||||
changed.send();
|
||||
}
|
||||
|
||||
@ -213,6 +228,14 @@ QList<caf::PdmOptionItemInfo>
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_dynamicEclipseCase || fieldNeedingOptions == &m_staticEclipseCase )
|
||||
{
|
||||
RimTools::eclipseCaseOptionItems( &options );
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_timeStep )
|
||||
{
|
||||
RimTools::timeStepsForCase( m_dynamicEclipseCase(), &options );
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
@ -224,6 +247,9 @@ void RimStimPlanModelTemplate::defineUiOrdering( QString uiConfigName, caf::PdmU
|
||||
{
|
||||
uiOrdering.add( nameField() );
|
||||
uiOrdering.add( &m_id );
|
||||
uiOrdering.add( &m_dynamicEclipseCase );
|
||||
uiOrdering.add( &m_timeStep );
|
||||
uiOrdering.add( &m_staticEclipseCase );
|
||||
|
||||
caf::PdmUiOrdering* defaultsGroup = uiOrdering.addNewGroup( "Defaults" );
|
||||
defaultsGroup->add( &m_defaultPorosity );
|
||||
@ -598,7 +624,7 @@ double RimStimPlanModelTemplate::referenceTemperatureDepth() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RimStimPlanModelTemplate::computeDefaultStressDepth()
|
||||
double RimStimPlanModelTemplate::computeDefaultStressDepth() const
|
||||
{
|
||||
const double stressDepth = 1000.0;
|
||||
|
||||
@ -612,19 +638,15 @@ double RimStimPlanModelTemplate::computeDefaultStressDepth()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseCase* RimStimPlanModelTemplate::getEclipseCase()
|
||||
RimEclipseCase* RimStimPlanModelTemplate::getEclipseCase() const
|
||||
{
|
||||
// Find an eclipse case
|
||||
RimProject* proj = RimProject::current();
|
||||
if ( proj->eclipseCases().empty() ) return nullptr;
|
||||
|
||||
return proj->eclipseCases()[0];
|
||||
return m_staticEclipseCase();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RigEclipseCaseData* RimStimPlanModelTemplate::getEclipseCaseData()
|
||||
RigEclipseCaseData* RimStimPlanModelTemplate::getEclipseCaseData() const
|
||||
{
|
||||
// Find an eclipse case
|
||||
RimEclipseCase* eclipseCase = getEclipseCase();
|
||||
@ -632,3 +654,54 @@ RigEclipseCaseData* RimStimPlanModelTemplate::getEclipseCaseData()
|
||||
|
||||
return eclipseCase->eclipseCaseData();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimStimPlanModelTemplate::setDynamicEclipseCase( RimEclipseCase* eclipseCase )
|
||||
{
|
||||
m_dynamicEclipseCase = eclipseCase;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimStimPlanModelTemplate::setTimeStep( int timeStep )
|
||||
{
|
||||
m_timeStep = timeStep;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimStimPlanModelTemplate::setStaticEclipseCase( RimEclipseCase* eclipseCase )
|
||||
{
|
||||
m_staticEclipseCase = eclipseCase;
|
||||
|
||||
if ( m_nonNetLayers ) m_nonNetLayers->setEclipseCase( eclipseCase );
|
||||
if ( m_faciesProperties ) m_faciesProperties->setEclipseCase( eclipseCase );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseCase* RimStimPlanModelTemplate::dynamicEclipseCase() const
|
||||
{
|
||||
return m_dynamicEclipseCase;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RimStimPlanModelTemplate::timeStep() const
|
||||
{
|
||||
return m_timeStep;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseCase* RimStimPlanModelTemplate::staticEclipseCase() const
|
||||
{
|
||||
return m_staticEclipseCase;
|
||||
}
|
||||
|
@ -82,6 +82,14 @@ public:
|
||||
double verticalStressGradient() const;
|
||||
double stressDepth() const;
|
||||
|
||||
void setDynamicEclipseCase( RimEclipseCase* eclipseCase );
|
||||
void setTimeStep( int timeStep );
|
||||
void setStaticEclipseCase( RimEclipseCase* eclipseCase );
|
||||
|
||||
RimEclipseCase* dynamicEclipseCase() const;
|
||||
int timeStep() const;
|
||||
RimEclipseCase* staticEclipseCase() const;
|
||||
|
||||
void loadDataAndUpdate();
|
||||
|
||||
void setElasticProperties( RimElasticProperties* elasticProperties );
|
||||
@ -105,16 +113,19 @@ protected:
|
||||
caf::PdmUiEditorAttribute* attribute ) override;
|
||||
|
||||
private:
|
||||
static RimEclipseCase* getEclipseCase();
|
||||
static RigEclipseCaseData* getEclipseCaseData();
|
||||
RimEclipseCase* getEclipseCase() const;
|
||||
RigEclipseCaseData* getEclipseCaseData() const;
|
||||
|
||||
void faciesPropertiesChanged( const caf::SignalEmitter* emitter );
|
||||
void elasticPropertiesChanged( const caf::SignalEmitter* emitter );
|
||||
void nonNetLayersChanged( const caf::SignalEmitter* emitter );
|
||||
|
||||
static double computeDefaultStressDepth();
|
||||
double computeDefaultStressDepth() const;
|
||||
|
||||
caf::PdmField<int> m_id;
|
||||
caf::PdmPtrField<RimEclipseCase*> m_dynamicEclipseCase;
|
||||
caf::PdmField<int> m_timeStep;
|
||||
caf::PdmPtrField<RimEclipseCase*> m_staticEclipseCase;
|
||||
caf::PdmField<double> m_defaultPorosity;
|
||||
caf::PdmField<double> m_defaultPermeability;
|
||||
caf::PdmField<double> m_verticalStress;
|
||||
|
Loading…
Reference in New Issue
Block a user