#7026 Make well path/fracture intersection available for ellipse.

This commit is contained in:
Kristian Bendiksen
2021-01-28 11:45:10 +01:00
committed by Magne Sjaastad
parent 7ebca64050
commit 635ada7297
6 changed files with 28 additions and 28 deletions

View File

@@ -486,6 +486,8 @@ void RimEllipseFractureTemplate::defineUiOrdering( QString uiConfigName, caf::Pd
group->add( &m_wellDiameter );
}
uiOrdering.add( &m_wellPathDepthAtFracture );
RimFractureTemplate::defineUiOrdering( uiConfigName, uiOrdering );
}

View File

@@ -862,7 +862,7 @@ void RimFracture::setFractureTemplate( RimFractureTemplate* fractureTemplate )
}
else
{
m_wellPathDepthAtFracture = 0.0;
m_wellPathDepthAtFracture = fractureTemplate->wellPathDepthAtFracture();
}
if ( fractureTemplate->orientationType() == RimFractureTemplate::AZIMUTH )

View File

@@ -154,6 +154,9 @@ RimFractureTemplate::RimFractureTemplate()
"",
"" );
CAF_PDM_InitField( &m_wellPathDepthAtFracture, "WellPathDepthAtFracture", 0.0, "Well/Fracture Intersection Depth", "", "", "" );
m_wellPathDepthAtFracture.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
CAF_PDM_InitFieldNoDefault( &m_fractureContainment, "FractureContainmentField", "Fracture Containment", "", "", "" );
m_fractureContainment = new RimFractureContainment();
m_fractureContainment.uiCapability()->setUiTreeHidden( true );
@@ -470,6 +473,17 @@ void RimFractureTemplate::defineEditorAttribute( const caf::PdmFieldHandle* fiel
attrib->m_buttonText = "Apply";
}
}
if ( field == &m_wellPathDepthAtFracture )
{
caf::PdmUiDoubleSliderEditorAttribute* myAttr = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>( attribute );
if ( myAttr )
{
auto [minimum, maximum] = wellPathDepthAtFractureRange();
myAttr->m_minimum = minimum;
myAttr->m_maximum = maximum;
}
}
}
//--------------------------------------------------------------------------------------------------
@@ -998,3 +1012,11 @@ bool RimFractureTemplate::isNonDarcyFlowEnabled() const
{
return m_nonDarcyFlowType() != RimFractureTemplate::NON_DARCY_NONE;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RimFractureTemplate::wellPathDepthAtFracture() const
{
return m_wellPathDepthAtFracture;
}

View File

@@ -136,6 +136,7 @@ public:
FracConductivityEnum conductivityType() const;
double perforationLength() const;
double wellPathDepthAtFracture() const;
virtual std::pair<double, double> wellPathDepthAtFractureRange() const = 0;
virtual void fractureTriangleGeometry( std::vector<cvf::Vec3f>* nodeCoords,
@@ -214,6 +215,8 @@ protected:
caf::PdmField<caf::AppEnum<FracConductivityEnum>> m_conductivityType;
caf::PdmChildField<RimFractureContainment*> m_fractureContainment;
caf::PdmField<double> m_wellPathDepthAtFracture;
caf::PdmField<caf::AppEnum<NonDarcyFlowEnum>> m_nonDarcyFlowType;
caf::PdmField<double> m_userDefinedDFactor;

View File

@@ -71,9 +71,6 @@ RimStimPlanFractureTemplate::RimStimPlanFractureTemplate()
CAF_PDM_InitFieldNoDefault( &m_stimPlanFileName, "StimPlanFileName", "File Name", "", "", "" );
m_stimPlanFileName.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() );
CAF_PDM_InitField( &m_wellPathDepthAtFracture, "WellPathDepthAtFracture", 0.0, "Well/Fracture Intersection Depth", "", "", "" );
m_wellPathDepthAtFracture.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
CAF_PDM_InitField( &m_useUserDefinedWellPathDepthAtFracture,
"UseUserDefinedWellPathDepthAtFracture",
false,
@@ -1076,20 +1073,6 @@ void RimStimPlanFractureTemplate::defineEditorAttribute( const caf::PdmFieldHand
myAttr->m_fileSelectionFilter = "StimPlan Xml Files(*.xml);;All Files (*.*)";
}
}
if ( field == &m_wellPathDepthAtFracture )
{
if ( !m_stimPlanFractureDefinitionData.isNull() && ( m_stimPlanFractureDefinitionData->yCount() > 0 ) )
{
caf::PdmUiDoubleSliderEditorAttribute* myAttr =
dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>( attribute );
if ( myAttr )
{
myAttr->m_minimum = m_stimPlanFractureDefinitionData->minDepth();
myAttr->m_maximum = m_stimPlanFractureDefinitionData->maxDepth();
}
}
}
}
//--------------------------------------------------------------------------------------------------
@@ -1103,14 +1086,6 @@ void RimStimPlanFractureTemplate::initAfterRead()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RimStimPlanFractureTemplate::wellPathDepthAtFracture() const
{
return m_wellPathDepthAtFracture;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -61,7 +61,6 @@ public:
void updateFilePathsFromProjectPath( const QString& newProjectPath, const QString& oldProjectPath );
double wellPathDepthAtFracture() const;
std::pair<double, double> wellPathDepthAtFractureRange() const override;
// Fracture geometry
@@ -135,7 +134,6 @@ private:
caf::PdmField<int> m_activeTimeStepIndex;
caf::PdmField<QString> m_conductivityResultNameOnFile;
caf::PdmField<double> m_wellPathDepthAtFracture;
caf::PdmField<bool> m_useUserDefinedWellPathDepthAtFracture;
caf::PdmField<QString> m_borderPolygonResultName;