mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#8079 StimPlan Model plot: Add Perforation interval in Fm. track
This commit is contained in:
parent
cc80f2300b
commit
6b3ad20587
@ -225,6 +225,9 @@ void RicNewStimPlanModelPlotFeature::createFormationTrack( RimStimPlanModelPlot*
|
||||
formationTrack->setFormationCase( eclipseCase );
|
||||
formationTrack->setAnnotationType( RiuPlotAnnotationTool::RegionAnnotationType::FORMATION_ANNOTATIONS );
|
||||
formationTrack->setXAxisGridVisibility( RimWellLogPlot::AxisGridVisibility::AXIS_GRID_NONE );
|
||||
formationTrack->setShowWellPathAttributes( true );
|
||||
formationTrack->setShowBothSidesOfWell( false );
|
||||
formationTrack->setWellPathAttributesSource( stimPlanModel->thicknessDirectionWellPath() );
|
||||
formationTrack->setVisibleXRange( 0.0, 0.0 );
|
||||
formationTrack->setOverburdenHeight( stimPlanModel->overburdenHeight() );
|
||||
formationTrack->setUnderburdenHeight( stimPlanModel->underburdenHeight() );
|
||||
|
@ -47,6 +47,7 @@
|
||||
#include "RimModeledWellPath.h"
|
||||
#include "RimNonNetLayers.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimPerforationCollection.h"
|
||||
#include "RimPolylineTarget.h"
|
||||
#include "RimPressureTable.h"
|
||||
#include "RimProject.h"
|
||||
@ -259,6 +260,8 @@ RimStimPlanModel::RimStimPlanModel()
|
||||
"",
|
||||
"" );
|
||||
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_perforationInterval, "PerforationInterval", "Perforation Interval", "", "", "" );
|
||||
|
||||
m_calculator = std::shared_ptr<RimStimPlanModelCalculator>( new RimStimPlanModelCalculator );
|
||||
m_calculator->setStimPlanModel( this );
|
||||
|
||||
@ -336,10 +339,12 @@ void RimStimPlanModel::fieldChangedByUi( const caf::PdmFieldHandle* changedField
|
||||
changedField == &m_autoComputeBarrier || changedField == &m_azimuthAngle ||
|
||||
changedField == &m_showOnlyBarrierFault || changedField == &m_eclipseCase ||
|
||||
changedField == &m_extractionDepthTop || changedField == &m_extractionDepthBottom ||
|
||||
changedField == &m_extractionOffsetTop || changedField == &m_extractionOffsetBottom )
|
||||
changedField == &m_extractionOffsetTop || changedField == &m_extractionOffsetBottom ||
|
||||
changedField == &m_perforationLength )
|
||||
{
|
||||
updateThicknessDirection();
|
||||
updateBarrierProperties();
|
||||
updatePerforationInterval();
|
||||
}
|
||||
|
||||
if ( changedField == &m_eclipseCase )
|
||||
@ -796,6 +801,26 @@ RimAnnotationCollectionBase* RimStimPlanModel::annotationCollection()
|
||||
return oilField ? oilField->annotationCollection() : nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimStimPlanModel::updatePerforationInterval()
|
||||
{
|
||||
if ( m_thicknessDirectionWellPath )
|
||||
{
|
||||
if ( !m_perforationInterval )
|
||||
{
|
||||
m_perforationInterval = new RimPerforationInterval;
|
||||
m_thicknessDirectionWellPath->perforationIntervalCollection()->appendPerforation( m_perforationInterval );
|
||||
}
|
||||
|
||||
double closestMd = m_thicknessDirectionWellPath->wellPathGeometry()->closestMeasuredDepth( m_anchorPosition );
|
||||
m_perforationInterval->setStartAndEndMD( closestMd - perforationLength(), closestMd + perforationLength() );
|
||||
m_perforationInterval->updateConnectedEditors();
|
||||
updateViewsAndPlots();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -943,6 +968,7 @@ void RimStimPlanModel::resetAnchorPositionAndThicknessDirection()
|
||||
updatePositionFromMeasuredDepth();
|
||||
updateExtractionDepthBoundaries();
|
||||
updateThicknessDirection();
|
||||
updatePerforationInterval();
|
||||
updateBarrierProperties();
|
||||
}
|
||||
|
||||
@ -1300,6 +1326,7 @@ void RimStimPlanModel::setMD( double md )
|
||||
updatePositionFromMeasuredDepth();
|
||||
updateExtractionDepthBoundaries();
|
||||
updateThicknessDirection();
|
||||
updatePerforationInterval();
|
||||
updateBarrierProperties();
|
||||
}
|
||||
|
||||
@ -1312,6 +1339,7 @@ void RimStimPlanModel::setEclipseCaseAndTimeStep( RimEclipseCase* eclipseCase, i
|
||||
setTimeStep( timeStep );
|
||||
updateExtractionDepthBoundaries();
|
||||
updateThicknessDirection();
|
||||
updatePerforationInterval();
|
||||
updateBarrierProperties();
|
||||
updateViewsAndPlots();
|
||||
updateConnectedEditors();
|
||||
@ -1517,8 +1545,8 @@ void RimStimPlanModel::stimPlanModelTemplateChanged( const caf::SignalEmitter* e
|
||||
m_initialPressureEclipseCase = m_stimPlanModelTemplate()->initialPressureEclipseCase();
|
||||
m_staticEclipseCase = m_stimPlanModelTemplate()->staticEclipseCase();
|
||||
updateExtractionDepthBoundaries();
|
||||
|
||||
updateThicknessDirection();
|
||||
updatePerforationInterval();
|
||||
updateBarrierProperties();
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,7 @@
|
||||
|
||||
#include "RimCheckableNamedObject.h"
|
||||
#include "RimExtractionConfiguration.h"
|
||||
#include "RimPerforationInterval.h"
|
||||
#include "RimWellPathComponentInterface.h"
|
||||
|
||||
#include "RigWellLogExtractor.h"
|
||||
@ -203,6 +204,7 @@ private:
|
||||
void updateThicknessDirection();
|
||||
void updateDistanceToBarrierAndDip();
|
||||
void updateThicknessDirectionWellPathName();
|
||||
void updatePerforationInterval();
|
||||
|
||||
RigEclipseCaseData* getEclipseCaseData() const;
|
||||
|
||||
@ -253,16 +255,17 @@ protected:
|
||||
caf::PdmField<double> m_azimuthAngle;
|
||||
caf::PdmField<double> m_perforationLength;
|
||||
|
||||
caf::PdmField<double> m_formationDip;
|
||||
caf::PdmField<bool> m_autoComputeBarrier;
|
||||
caf::PdmField<bool> m_hasBarrier;
|
||||
caf::PdmField<double> m_distanceToBarrier;
|
||||
caf::PdmField<double> m_barrierDip;
|
||||
caf::PdmField<int> m_wellPenetrationLayer;
|
||||
caf::PdmPtrField<RimTextAnnotation*> m_barrierTextAnnotation;
|
||||
caf::PdmField<QString> m_barrierFaultName;
|
||||
caf::PdmField<bool> m_showOnlyBarrierFault;
|
||||
caf::PdmField<bool> m_showAllFaults;
|
||||
caf::PdmField<double> m_formationDip;
|
||||
caf::PdmField<bool> m_autoComputeBarrier;
|
||||
caf::PdmField<bool> m_hasBarrier;
|
||||
caf::PdmField<double> m_distanceToBarrier;
|
||||
caf::PdmField<double> m_barrierDip;
|
||||
caf::PdmField<int> m_wellPenetrationLayer;
|
||||
caf::PdmPtrField<RimTextAnnotation*> m_barrierTextAnnotation;
|
||||
caf::PdmField<QString> m_barrierFaultName;
|
||||
caf::PdmField<bool> m_showOnlyBarrierFault;
|
||||
caf::PdmField<bool> m_showAllFaults;
|
||||
caf::PdmPtrField<RimPerforationInterval*> m_perforationInterval;
|
||||
|
||||
std::shared_ptr<RimStimPlanModelCalculator> m_calculator;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user