#7339 StimPlanModel: Add case for initial pressure data.

This commit is contained in:
Kristian Bendiksen 2021-02-17 10:15:35 +01:00
parent 77d02e67da
commit 8e29c2eb66
4 changed files with 52 additions and 7 deletions

View File

@ -142,6 +142,14 @@ RimStimPlanModel::RimStimPlanModel()
CAF_PDM_InitScriptableField( &m_timeStep, "TimeStep", 0, "Time Step", "", "", "" );
m_timeStep.uiCapability()->setUiReadOnly( true );
CAF_PDM_InitScriptableFieldNoDefault( &m_initialPressureEclipseCase,
"InitialPressureEclipseCase",
"Initial Pressure Case",
"",
"",
"" );
m_initialPressureEclipseCase.uiCapability()->setUiReadOnly( true );
CAF_PDM_InitScriptableFieldNoDefault( &m_staticEclipseCase, "StaticEclipseCase", "Static Case", "", "", "" );
m_staticEclipseCase.uiCapability()->setUiReadOnly( true );
@ -394,7 +402,8 @@ QList<caf::PdmOptionItemInfo> RimStimPlanModel::calculateValueOptions( const caf
}
}
}
else if ( fieldNeedingOptions == &m_eclipseCase || fieldNeedingOptions == &m_staticEclipseCase )
else if ( fieldNeedingOptions == &m_eclipseCase || fieldNeedingOptions == &m_staticEclipseCase ||
fieldNeedingOptions == &m_initialPressureEclipseCase )
{
RimTools::eclipseCaseOptionItems( &options );
}
@ -903,6 +912,7 @@ void RimStimPlanModel::defineUiOrdering( QString uiConfigName, caf::PdmUiOrderin
uiOrdering.add( &m_eclipseCase );
uiOrdering.add( &m_timeStep );
uiOrdering.add( &m_initialPressureEclipseCase );
uiOrdering.add( &m_staticEclipseCase );
uiOrdering.add( &m_MD );
uiOrdering.add( &m_extractionType );
@ -1548,7 +1558,11 @@ bool RimStimPlanModel::useStaticEclipseCase( RiaDefines::CurveProperty curveProp
//--------------------------------------------------------------------------------------------------
RimEclipseCase* RimStimPlanModel::eclipseCaseForProperty( RiaDefines::CurveProperty curveProperty ) const
{
if ( m_staticEclipseCase && useStaticEclipseCase( curveProperty ) )
if ( m_initialPressureEclipseCase && curveProperty == RiaDefines::CurveProperty::INITIAL_PRESSURE )
{
return m_initialPressureEclipseCase;
}
else if ( m_staticEclipseCase && useStaticEclipseCase( curveProperty ) )
{
return m_staticEclipseCase;
}
@ -1566,6 +1580,7 @@ void RimStimPlanModel::setEclipseCase( RimEclipseCase* eclipseCase )
if ( m_stimPlanModelTemplate )
{
m_stimPlanModelTemplate->setDynamicEclipseCase( eclipseCase );
m_stimPlanModelTemplate->setInitialPressureEclipseCase( eclipseCase );
m_stimPlanModelTemplate->setStaticEclipseCase( eclipseCase );
}
}
@ -1671,9 +1686,10 @@ void RimStimPlanModel::stimPlanModelTemplateChanged( const caf::SignalEmitter* e
{
if ( m_stimPlanModelTemplate() )
{
m_eclipseCase = m_stimPlanModelTemplate()->dynamicEclipseCase();
m_timeStep = m_stimPlanModelTemplate()->timeStep();
m_staticEclipseCase = m_stimPlanModelTemplate()->staticEclipseCase();
m_eclipseCase = m_stimPlanModelTemplate()->dynamicEclipseCase();
m_timeStep = m_stimPlanModelTemplate()->timeStep();
m_initialPressureEclipseCase = m_stimPlanModelTemplate()->initialPressureEclipseCase();
m_staticEclipseCase = m_stimPlanModelTemplate()->staticEclipseCase();
updateExtractionDepthBoundaries();
updateThicknessDirection();

View File

@ -227,6 +227,7 @@ protected:
caf::PdmField<double> m_MD;
caf::PdmPtrField<RimEclipseCase*> m_eclipseCase;
caf::PdmField<int> m_timeStep;
caf::PdmPtrField<RimEclipseCase*> m_initialPressureEclipseCase;
caf::PdmPtrField<RimEclipseCase*> m_staticEclipseCase;
caf::PdmField<caf::AppEnum<ExtractionType>> m_extractionType;
caf::PdmField<double> m_extractionDepthTop;

View File

@ -68,6 +68,13 @@ RimStimPlanModelTemplate::RimStimPlanModelTemplate()
CAF_PDM_InitScriptableFieldNoDefault( &m_dynamicEclipseCase, "DynamicEclipseCase", "Dynamic Case", "", "", "" );
CAF_PDM_InitScriptableField( &m_timeStep, "TimeStep", 0, "Time Step", "", "", "" );
CAF_PDM_InitScriptableFieldNoDefault( &m_initialPressureEclipseCase,
"InitialPressureEclipseCase",
"Initial Pressure Case",
"",
"",
"" );
CAF_PDM_InitScriptableFieldNoDefault( &m_staticEclipseCase, "StaticEclipseCase", "Static Case", "", "", "" );
CAF_PDM_InitScriptableField( &m_defaultPorosity,
@ -203,7 +210,7 @@ void RimStimPlanModelTemplate::fieldChangedByUi( const caf::PdmFieldHandle* chan
const QVariant& oldValue,
const QVariant& newValue )
{
if ( changedField == &m_dynamicEclipseCase )
if ( changedField == &m_dynamicEclipseCase && m_dynamicEclipseCase )
{
// Set a valid default time step
const int timeStepCount = m_dynamicEclipseCase->timeStepStrings().size();
@ -248,7 +255,8 @@ QList<caf::PdmOptionItemInfo>
}
}
}
else if ( fieldNeedingOptions == &m_dynamicEclipseCase || fieldNeedingOptions == &m_staticEclipseCase )
else if ( fieldNeedingOptions == &m_dynamicEclipseCase || fieldNeedingOptions == &m_staticEclipseCase ||
fieldNeedingOptions == &m_initialPressureEclipseCase )
{
RimTools::eclipseCaseOptionItems( &options );
}
@ -269,6 +277,7 @@ void RimStimPlanModelTemplate::defineUiOrdering( QString uiConfigName, caf::PdmU
uiOrdering.add( &m_id );
uiOrdering.add( &m_dynamicEclipseCase );
uiOrdering.add( &m_timeStep );
uiOrdering.add( &m_initialPressureEclipseCase );
uiOrdering.add( &m_staticEclipseCase );
caf::PdmUiOrdering* defaultsGroup = uiOrdering.addNewGroup( "Defaults" );
@ -792,6 +801,22 @@ RimEclipseCase* RimStimPlanModelTemplate::staticEclipseCase() const
return m_staticEclipseCase;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimStimPlanModelTemplate::setInitialPressureEclipseCase( RimEclipseCase* eclipseCase )
{
m_initialPressureEclipseCase = eclipseCase;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimEclipseCase* RimStimPlanModelTemplate::initialPressureEclipseCase() const
{
return m_initialPressureEclipseCase;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -91,10 +91,12 @@ public:
void setDynamicEclipseCase( RimEclipseCase* eclipseCase );
void setTimeStep( int timeStep );
void setStaticEclipseCase( RimEclipseCase* eclipseCase );
void setInitialPressureEclipseCase( RimEclipseCase* eclipseCase );
RimEclipseCase* dynamicEclipseCase() const;
int timeStep() const;
RimEclipseCase* staticEclipseCase() const;
RimEclipseCase* initialPressureEclipseCase() const;
std::map<int, double> faciesWithInitialPressure() const;
@ -139,6 +141,7 @@ private:
caf::PdmField<int> m_id;
caf::PdmPtrField<RimEclipseCase*> m_dynamicEclipseCase;
caf::PdmField<int> m_timeStep;
caf::PdmPtrField<RimEclipseCase*> m_initialPressureEclipseCase;
caf::PdmPtrField<RimEclipseCase*> m_staticEclipseCase;
caf::PdmField<double> m_defaultPorosity;
caf::PdmField<double> m_defaultPermeability;