mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#9470 User defined perf length for azimuth fractures
Fractures: Add UI for user-defined perforation length for az fractures Add user defined perforation length for azimuth fractures. Janitor: remove duplication
This commit is contained in:
committed by
GitHub
parent
4345cb3a70
commit
e8789f3d4b
@@ -489,6 +489,7 @@ void RimEllipseFractureTemplate::defineUiOrdering( QString uiConfigName, caf::Pd
|
||||
group->add( &m_permeability );
|
||||
group->add( &m_width );
|
||||
group->add( &m_skinFactor );
|
||||
group->add( &m_userDefinedPerforationLength );
|
||||
group->add( &m_perforationLength );
|
||||
group->add( &m_perforationEfficiency );
|
||||
group->add( &m_wellDiameter );
|
||||
|
||||
@@ -133,6 +133,10 @@ RimFractureTemplate::RimFractureTemplate()
|
||||
caf::AppEnum<FracOrientationEnum>( TRANSVERSE_WELL_PATH ),
|
||||
"Fracture Orientation" );
|
||||
|
||||
CAF_PDM_InitScriptableField( &m_userDefinedPerforationLength,
|
||||
"UserDefinedPerforationLength",
|
||||
false,
|
||||
"User-defined Perforation Length" );
|
||||
CAF_PDM_InitScriptableField( &m_azimuthAngle, "AzimuthAngle", 0.0f, "Azimuth Angle" );
|
||||
|
||||
CAF_PDM_InitField( &m_skinFactor, "SkinFactor", 0.0f, "Skin Factor" );
|
||||
@@ -496,10 +500,12 @@ void RimFractureTemplate::prepareFieldsForUiDisplay()
|
||||
m_orientationType == RimFractureTemplate::TRANSVERSE_WELL_PATH )
|
||||
{
|
||||
m_azimuthAngle.uiCapability()->setUiHidden( true );
|
||||
m_userDefinedPerforationLength.uiCapability()->setUiHidden( true );
|
||||
}
|
||||
else if ( m_orientationType == RimFractureTemplate::AZIMUTH )
|
||||
{
|
||||
m_azimuthAngle.uiCapability()->setUiHidden( false );
|
||||
m_userDefinedPerforationLength.uiCapability()->setUiHidden( false );
|
||||
}
|
||||
|
||||
if ( m_orientationType == RimFractureTemplate::ALONG_WELL_PATH )
|
||||
@@ -510,7 +516,10 @@ void RimFractureTemplate::prepareFieldsForUiDisplay()
|
||||
else
|
||||
{
|
||||
m_perforationEfficiency.uiCapability()->setUiHidden( true );
|
||||
m_perforationLength.uiCapability()->setUiHidden( true );
|
||||
|
||||
bool hidePerforationLength =
|
||||
!( m_orientationType == RimFractureTemplate::AZIMUTH && m_userDefinedPerforationLength() );
|
||||
m_perforationLength.uiCapability()->setUiHidden( hidePerforationLength );
|
||||
}
|
||||
|
||||
if ( m_conductivityType == FINITE_CONDUCTIVITY )
|
||||
@@ -939,6 +948,14 @@ double RimFractureTemplate::perforationLength() const
|
||||
return m_perforationLength;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimFractureTemplate::useUserDefinedPerforationLength() const
|
||||
{
|
||||
return m_userDefinedPerforationLength;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -138,6 +138,7 @@ public:
|
||||
double wellDiameter() const;
|
||||
FracConductivityEnum conductivityType() const;
|
||||
double perforationLength() const;
|
||||
bool useUserDefinedPerforationLength() const;
|
||||
|
||||
double wellPathDepthAtFracture() const;
|
||||
virtual std::pair<double, double> wellPathDepthAtFractureRange() const = 0;
|
||||
@@ -215,6 +216,7 @@ protected:
|
||||
caf::PdmField<caf::AppEnum<FracOrientationEnum>> m_orientationType;
|
||||
caf::PdmField<float> m_azimuthAngle;
|
||||
caf::PdmField<float> m_skinFactor;
|
||||
caf::PdmField<bool> m_userDefinedPerforationLength;
|
||||
caf::PdmField<double> m_perforationLength;
|
||||
caf::PdmField<double> m_perforationEfficiency;
|
||||
caf::PdmField<double> m_wellDiameter;
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "RigFractureCell.h"
|
||||
#include "RigFractureGrid.h"
|
||||
#include "RigTransmissibilityEquations.h"
|
||||
#include "RigWellPath.h"
|
||||
#include "RigWellPathStimplanIntersector.h"
|
||||
|
||||
#include "RimEclipseView.h"
|
||||
@@ -275,7 +276,10 @@ WellFractureIntersectionData RimMeshFractureTemplate::wellFractureIntersectionDa
|
||||
RiaWeightedMeanCalculator<double> conductivityCalc;
|
||||
RiaWeightedGeometricMeanCalculator betaFactorCalc;
|
||||
|
||||
RigWellPathStimplanIntersector intersector( rimWellPath->wellPathGeometry(), fractureInstance );
|
||||
std::vector<cvf::Vec3d> wellPathPoints =
|
||||
rimWellPath->wellPathGeometry()->wellPathPointsIncludingInterpolatedIntersectionPoint(
|
||||
fractureInstance->fractureMD() );
|
||||
RigWellPathStimplanIntersector intersector( wellPathPoints, fractureInstance );
|
||||
for ( const auto& v : intersector.intersections() )
|
||||
{
|
||||
size_t fractureGlobalCellIndex = v.first;
|
||||
@@ -498,6 +502,7 @@ void RimMeshFractureTemplate::defineUiOrdering( QString uiConfigName, caf::PdmUi
|
||||
group->add( &m_conductivityResultNameOnFile );
|
||||
group->add( &m_conductivityType );
|
||||
group->add( &m_skinFactor );
|
||||
group->add( &m_userDefinedPerforationLength );
|
||||
group->add( &m_perforationLength );
|
||||
group->add( &m_perforationEfficiency );
|
||||
group->add( &m_wellDiameter );
|
||||
|
||||
Reference in New Issue
Block a user