mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#7339 StimPlanFracture: Add methods to use two grids for data extraction.
This commit is contained in:
parent
6c672d9c9c
commit
c6f35cbe1f
@ -67,7 +67,7 @@ CAF_CMD_SOURCE_INIT( RicNewStimPlanModelPlotFeature, "RicNewStimPlanModelPlotFea
|
||||
RimStimPlanModelPlot* RicNewStimPlanModelPlotFeature::createPlot( RimStimPlanModel* stimPlanModel )
|
||||
|
||||
{
|
||||
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCase();
|
||||
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCaseForProperty( RiaDefines::CurveProperty::UNDEFINED );
|
||||
int timeStep = stimPlanModel->timeStep();
|
||||
|
||||
caf::ProgressInfo progInfo( 100, "Creating StimPlan Model Plot" );
|
||||
@ -260,9 +260,8 @@ void RicNewStimPlanModelPlotFeature::createFaciesTrack( RimStimPlanModelPlot* pl
|
||||
caf::ColorTable colors = RiaColorTables::wellLogPlotPaletteColors();
|
||||
|
||||
RimStimPlanModelCurve* curve = new RimStimPlanModelCurve;
|
||||
curve->setStimPlanModel( stimPlanModel );
|
||||
curve->setCurveProperty( RiaDefines::CurveProperty::FACIES );
|
||||
curve->setCase( eclipseCase );
|
||||
curve->setStimPlanModel( stimPlanModel );
|
||||
curve->setEclipseResultCategory( faciesDefinition->resultType() );
|
||||
curve->setEclipseResultVariable( faciesDefinition->resultVariable() );
|
||||
curve->setColor( colors.cycledColor3f( 0 ) );
|
||||
@ -315,7 +314,6 @@ void RicNewStimPlanModelPlotFeature::createLayersTrack( RimStimPlanModelPlot* pl
|
||||
RimStimPlanModelCurve* curve = new RimStimPlanModelCurve;
|
||||
curve->setCurveProperty( RiaDefines::CurveProperty::LAYERS );
|
||||
curve->setStimPlanModel( stimPlanModel );
|
||||
curve->setCase( eclipseCase );
|
||||
curve->setColor( colors.cycledColor3f( 0 ) );
|
||||
curve->setLineStyle( RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_SOLID );
|
||||
curve->setLineThickness( 2 );
|
||||
@ -368,7 +366,6 @@ void RicNewStimPlanModelPlotFeature::createParametersTrack( RimStimPlanModelPlot
|
||||
RimStimPlanModelCurve* curve = new RimStimPlanModelCurve;
|
||||
curve->setCurveProperty( propertyType );
|
||||
curve->setStimPlanModel( stimPlanModel );
|
||||
curve->setCase( eclipseCase );
|
||||
curve->setEclipseResultVariable( resultVariable );
|
||||
curve->setEclipseResultCategory( resultCategoryType );
|
||||
curve->setColor( colors.cycledColor3f( colorIndex ) );
|
||||
|
@ -136,9 +136,11 @@ RimStimPlanModel::RimStimPlanModel()
|
||||
m_editStimPlanModelTemplate.uiCapability()->setUiEditorTypeName( caf::PdmUiToolButtonEditor::uiEditorTypeName() );
|
||||
m_editStimPlanModelTemplate.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN );
|
||||
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_eclipseCase, "EclipseCase", "Case", "", "", "" );
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_eclipseCase, "EclipseCase", "Dynamic Case", "", "", "" );
|
||||
CAF_PDM_InitScriptableField( &m_timeStep, "TimeStep", 0, "Time Step", "", "", "" );
|
||||
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_staticEclipseCase, "StaticEclipseCase", "Static Case", "", "", "" );
|
||||
|
||||
CAF_PDM_InitScriptableField( &m_MD, "MeasuredDepth", 0.0, "Measured Depth", "", "", "" );
|
||||
m_MD.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||
|
||||
@ -388,7 +390,7 @@ QList<caf::PdmOptionItemInfo> RimStimPlanModel::calculateValueOptions( const caf
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_eclipseCase )
|
||||
else if ( fieldNeedingOptions == &m_eclipseCase || fieldNeedingOptions == &m_staticEclipseCase )
|
||||
{
|
||||
RimTools::eclipseCaseOptionItems( &options );
|
||||
}
|
||||
@ -897,6 +899,7 @@ void RimStimPlanModel::defineUiOrdering( QString uiConfigName, caf::PdmUiOrderin
|
||||
|
||||
uiOrdering.add( &m_eclipseCase );
|
||||
uiOrdering.add( &m_timeStep );
|
||||
uiOrdering.add( &m_staticEclipseCase );
|
||||
uiOrdering.add( &m_MD );
|
||||
uiOrdering.add( &m_extractionType );
|
||||
uiOrdering.add( &m_anchorPosition );
|
||||
@ -1522,9 +1525,33 @@ double RimStimPlanModel::referenceTemperatureDepth() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseCase* RimStimPlanModel::eclipseCase() const
|
||||
bool RimStimPlanModel::useStaticEclipseCase( RiaDefines::CurveProperty curveProperty )
|
||||
{
|
||||
std::vector<RiaDefines::CurveProperty> matching = {
|
||||
RiaDefines::CurveProperty::POROSITY,
|
||||
RiaDefines::CurveProperty::POROSITY_UNSCALED,
|
||||
RiaDefines::CurveProperty::PERMEABILITY_X,
|
||||
RiaDefines::CurveProperty::PERMEABILITY_Z,
|
||||
RiaDefines::CurveProperty::FACIES,
|
||||
RiaDefines::CurveProperty::NET_TO_GROSS,
|
||||
};
|
||||
|
||||
return std::find( matching.begin(), matching.end(), curveProperty ) != matching.end();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseCase* RimStimPlanModel::eclipseCaseForProperty( RiaDefines::CurveProperty curveProperty ) const
|
||||
{
|
||||
if ( m_staticEclipseCase && useStaticEclipseCase( curveProperty ) )
|
||||
{
|
||||
return m_staticEclipseCase;
|
||||
}
|
||||
else
|
||||
{
|
||||
return m_eclipseCase;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1533,6 +1560,7 @@ RimEclipseCase* RimStimPlanModel::eclipseCase() const
|
||||
void RimStimPlanModel::setEclipseCase( RimEclipseCase* eclipseCase )
|
||||
{
|
||||
m_eclipseCase = eclipseCase;
|
||||
m_staticEclipseCase = eclipseCase;
|
||||
updateExtractionDepthBoundaries();
|
||||
}
|
||||
|
||||
@ -1542,7 +1570,7 @@ void RimStimPlanModel::setEclipseCase( RimEclipseCase* eclipseCase )
|
||||
RigEclipseCaseData* RimStimPlanModel::getEclipseCaseData() const
|
||||
{
|
||||
// Find an eclipse case
|
||||
RimEclipseCase* eclCase = eclipseCase();
|
||||
RimEclipseCase* eclCase = eclipseCaseForProperty( RiaDefines::CurveProperty::FACIES );
|
||||
if ( !eclCase ) return nullptr;
|
||||
|
||||
return eclCase->eclipseCaseData();
|
||||
|
@ -86,8 +86,8 @@ public:
|
||||
int timeStep() const;
|
||||
void setTimeStep( int timeStep );
|
||||
|
||||
RimEclipseCase* eclipseCase() const;
|
||||
void setEclipseCase( RimEclipseCase* eclipseCase );
|
||||
RimEclipseCase* eclipseCaseForProperty( RiaDefines::CurveProperty curveProperty ) const;
|
||||
|
||||
void setEclipseCaseAndTimeStep( RimEclipseCase* eclipseCase, int timeStep );
|
||||
|
||||
@ -221,10 +221,13 @@ private:
|
||||
RimColorLegend* getFaciesColorLegend() const;
|
||||
void updateExtractionDepthBoundaries();
|
||||
|
||||
static bool useStaticEclipseCase( RiaDefines::CurveProperty curveProperty );
|
||||
|
||||
protected:
|
||||
caf::PdmField<double> m_MD;
|
||||
caf::PdmPtrField<RimEclipseCase*> m_eclipseCase;
|
||||
caf::PdmField<int> m_timeStep;
|
||||
caf::PdmPtrField<RimEclipseCase*> m_staticEclipseCase;
|
||||
caf::PdmField<caf::AppEnum<ExtractionType>> m_extractionType;
|
||||
caf::PdmField<double> m_extractionDepthTop;
|
||||
caf::PdmField<double> m_extractionDepthBottom;
|
||||
|
@ -71,7 +71,7 @@ RimStimPlanModelCurve::~RimStimPlanModelCurve()
|
||||
void RimStimPlanModelCurve::setStimPlanModel( RimStimPlanModel* stimPlanModel )
|
||||
{
|
||||
m_stimPlanModel = stimPlanModel;
|
||||
m_case = stimPlanModel->eclipseCase();
|
||||
m_case = stimPlanModel->eclipseCaseForProperty( m_curveProperty() );
|
||||
m_timeStep = stimPlanModel->timeStep();
|
||||
m_wellPath = stimPlanModel->thicknessDirectionWellPath();
|
||||
}
|
||||
@ -132,9 +132,9 @@ void RimStimPlanModelCurve::performDataExtraction( bool* isUsingPseudoLength )
|
||||
|
||||
*isUsingPseudoLength = false;
|
||||
|
||||
if ( m_stimPlanModel && m_stimPlanModel->eclipseCase() )
|
||||
if ( m_stimPlanModel && m_stimPlanModel->eclipseCaseForProperty( m_curveProperty() ) )
|
||||
{
|
||||
RimEclipseCase* eclipseCase = m_stimPlanModel->eclipseCase();
|
||||
RimEclipseCase* eclipseCase = m_stimPlanModel->eclipseCaseForProperty( m_curveProperty() );
|
||||
|
||||
bool isOk = m_stimPlanModel->calculator()->extractCurveData( curveProperty(),
|
||||
m_stimPlanModel->timeStep(),
|
||||
|
@ -94,7 +94,8 @@ bool RimStimPlanModelElasticPropertyCalculator::calculate( RiaDefines::CurveProp
|
||||
std::vector<double>& tvDepthValues,
|
||||
double& rkbDiff ) const
|
||||
{
|
||||
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCase();
|
||||
// Use the static model for extracting elastic properties
|
||||
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCaseForProperty( RiaDefines::CurveProperty::FACIES );
|
||||
if ( !eclipseCase )
|
||||
{
|
||||
return false;
|
||||
|
@ -68,7 +68,7 @@ bool RimStimPlanModelLayerCalculator::calculate( RiaDefines::CurveProperty curve
|
||||
std::vector<double>& tvDepthValues,
|
||||
double& rkbDiff ) const
|
||||
{
|
||||
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCase();
|
||||
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCaseForProperty( RiaDefines::CurveProperty::FACIES );
|
||||
if ( !eclipseCase )
|
||||
{
|
||||
return false;
|
||||
|
@ -65,7 +65,7 @@ RimStimPlanModelPlot::RimStimPlanModelPlot()
|
||||
void RimStimPlanModelPlot::setStimPlanModel( RimStimPlanModel* stimPlanModel )
|
||||
{
|
||||
m_stimPlanModel = stimPlanModel;
|
||||
m_eclipseCase = stimPlanModel->eclipseCase();
|
||||
m_eclipseCase = stimPlanModel->eclipseCaseForProperty( RiaDefines::CurveProperty::UNDEFINED );
|
||||
m_timeStep = stimPlanModel->timeStep();
|
||||
|
||||
m_nameConfig->setCustomName( stimPlanModel->name() );
|
||||
@ -158,7 +158,7 @@ void RimStimPlanModelPlot::onLoadDataAndUpdate()
|
||||
if ( stimPlanModel() != nullptr )
|
||||
{
|
||||
// Update eclipse case and time step
|
||||
m_eclipseCase = stimPlanModel()->eclipseCase();
|
||||
m_eclipseCase = stimPlanModel()->eclipseCaseForProperty( RiaDefines::CurveProperty::UNDEFINED );
|
||||
m_timeStep = stimPlanModel()->timeStep();
|
||||
updateConnectedEditors();
|
||||
|
||||
|
@ -66,7 +66,7 @@ bool RimStimPlanModelStressCalculator::calculate( RiaDefines::CurveProperty curv
|
||||
std::vector<double>& tvDepthValues,
|
||||
double& rkbDiff ) const
|
||||
{
|
||||
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCase();
|
||||
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCaseForProperty( curveProperty );
|
||||
if ( !eclipseCase )
|
||||
{
|
||||
return false;
|
||||
|
@ -79,7 +79,7 @@ bool RimStimPlanModelWellLogCalculator::calculate( RiaDefines::CurveProperty cur
|
||||
std::vector<double>& tvDepthValues,
|
||||
double& rkbDiff ) const
|
||||
{
|
||||
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCase();
|
||||
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCaseForProperty( curveProperty );
|
||||
if ( !eclipseCase )
|
||||
{
|
||||
return false;
|
||||
|
Loading…
Reference in New Issue
Block a user