mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1553 Changing from wellRadius to wellDiameter for fractures and templates, and adding unit (m or inch) and conversion. wellRadius() still returns radius, in m or ft
This commit is contained in:
@@ -55,6 +55,7 @@ void RicNewEllipseFractureTemplateFeature::onActionTriggered(bool isChecked)
|
||||
fracDefColl->fractureDefinitions.push_back(fractureDef);
|
||||
fractureDef->name = "Ellipse Fracture Template";
|
||||
fractureDef->fractureTemplateUnit = fracDefColl->defaultUnitsForFracTemplates();
|
||||
fractureDef->setDefaultWellDiameterFromUnit();
|
||||
|
||||
fracDefColl->updateConnectedEditors();
|
||||
RiuMainWindow::instance()->selectAsCurrentItem(fractureDef);
|
||||
|
||||
@@ -64,7 +64,8 @@ void RicNewStimPlanFractureTemplateFeature::onActionTriggered(bool isChecked)
|
||||
fractureDef->setFileName(fileName);
|
||||
fractureDef->loadDataAndUpdate();
|
||||
fractureDef->setDefaultsBasedOnXMLfile();
|
||||
|
||||
fractureDef->setDefaultWellDiameterFromUnit();
|
||||
|
||||
fracDefColl->updateConnectedEditors();
|
||||
RiuMainWindow::instance()->selectAsCurrentItem(fractureDef);
|
||||
}
|
||||
|
||||
@@ -170,16 +170,15 @@ void RimEllipseFractureTemplate::changeUnits()
|
||||
halfLength = RimDefines::meterToFeet(halfLength);
|
||||
height = RimDefines::meterToFeet(height);
|
||||
width = RimDefines::meterToInch(width);
|
||||
//perforationLength = RimDefines::meterToFeet(perforationLength);
|
||||
wellDiameter = RimDefines::meterToInch(wellDiameter);
|
||||
fractureTemplateUnit = RimDefines::UNITS_FIELD;
|
||||
//TODO: Darcy unit?
|
||||
}
|
||||
else if (fractureTemplateUnit == RimDefines::UNITS_FIELD)
|
||||
{
|
||||
halfLength = RimDefines::feetToMeter(halfLength);
|
||||
height = RimDefines::feetToMeter(height);
|
||||
width = RimDefines::inchToMeter(width);
|
||||
//perforationLength = RimDefines::feetToMeter(perforationLength);
|
||||
wellDiameter = RimDefines::inchToMeter(wellDiameter);
|
||||
fractureTemplateUnit = RimDefines::UNITS_METRIC;
|
||||
}
|
||||
|
||||
@@ -277,6 +276,7 @@ void RimEllipseFractureTemplate::setupFractureGridCells()
|
||||
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -297,14 +297,14 @@ void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pdm
|
||||
halfLength.uiCapability()->setUiName("Halflenght X<sub>f</sub> [m]");
|
||||
height.uiCapability()->setUiName("Height [m]");
|
||||
width.uiCapability()->setUiName("Width [m]");
|
||||
//perforationLength.uiCapability()->setUiName("Perforation Length [m]");
|
||||
wellDiameter.uiCapability()->setUiName("Well Diameter [m]");
|
||||
}
|
||||
else if (fractureTemplateUnit == RimDefines::UNITS_FIELD)
|
||||
{
|
||||
halfLength.uiCapability()->setUiName("Halflenght X<sub>f</sub> [Ft]");
|
||||
height.uiCapability()->setUiName("Height [Ft]");
|
||||
width.uiCapability()->setUiName("Width [inches]");
|
||||
//perforationLength.uiCapability()->setUiName("Perforation Length [Ft]");
|
||||
wellDiameter.uiCapability()->setUiName("Well Diameter [inches]");
|
||||
}
|
||||
|
||||
|
||||
@@ -326,7 +326,7 @@ void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pdm
|
||||
propertyGroup->add(&skinFactor);
|
||||
propertyGroup->add(&perforationLength);
|
||||
propertyGroup->add(&perforationEfficiency);
|
||||
propertyGroup->add(&wellRadius);
|
||||
propertyGroup->add(&wellDiameter);
|
||||
|
||||
uiOrdering.add(&fractureTemplateUnit);
|
||||
uiOrdering.skipRemainingFields(true);
|
||||
|
||||
@@ -86,7 +86,7 @@ RimFracture::RimFracture(void)
|
||||
CAF_PDM_InitField(&perforationLength, "PerforationLength", 0.0, "Perforation Length", "", "", "");
|
||||
CAF_PDM_InitField(&perforationEfficiency, "perforationEfficiency", 1.0, "perforation Efficiency", "", "", "");
|
||||
perforationEfficiency.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
|
||||
CAF_PDM_InitField(&wellRadius, "wellRadius", 0.0, "Well Radius at Fracture", "", "", "");
|
||||
CAF_PDM_InitField(&wellDiameter, "wellDiameter", 0.216, "Well Diameter at Fracture", "", "", "");
|
||||
CAF_PDM_InitField(&dip, "Dip", 0.0, "Dip", "", "", "");
|
||||
CAF_PDM_InitField(&tilt, "Tilt", 0.0, "Tilt", "", "", "");
|
||||
CAF_PDM_InitField(&showPolygonFractureOutline, "showPolygonFractureOutline", true, "Show Polygon Outline", "", "", "");
|
||||
@@ -161,6 +161,21 @@ std::vector<size_t> RimFracture::getPotentiallyFracturedCells(const RigMainGrid*
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
|
||||
if (changedField == &fractureUnit)
|
||||
{
|
||||
if (fractureUnit == RimDefines::UNITS_METRIC)
|
||||
{
|
||||
wellDiameter = RimDefines::inchToMeter(wellDiameter);
|
||||
}
|
||||
else if (fractureUnit == RimDefines::UNITS_FIELD)
|
||||
{
|
||||
wellDiameter = RimDefines::meterToInch(wellDiameter);
|
||||
}
|
||||
this->updateConnectedEditors();
|
||||
}
|
||||
|
||||
|
||||
if (changedField == &m_fractureTemplate)
|
||||
{
|
||||
//perforationLength = m_fractureTemplate->perforationLength();
|
||||
@@ -242,6 +257,22 @@ void RimFracture::computeGeometry()
|
||||
m_recomputeGeometry = false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RimFracture::wellRadius() const
|
||||
{
|
||||
if (fractureUnit == RimDefines::UNITS_METRIC)
|
||||
{
|
||||
return wellDiameter / 2;
|
||||
}
|
||||
else if (fractureUnit == RimDefines::UNITS_FIELD)
|
||||
{
|
||||
return RimDefines::inchToFeet(wellDiameter / 2);
|
||||
}
|
||||
return cvf::UNDEFINED_DOUBLE;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -365,6 +396,7 @@ QList<caf::PdmOptionItemInfo> RimFracture::calculateValueOptions(const caf::PdmF
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
|
||||
updateFieldVisibility();
|
||||
}
|
||||
|
||||
@@ -373,6 +405,16 @@ void RimFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiO
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFracture::updateFieldVisibility()
|
||||
{
|
||||
|
||||
if (fractureUnit == RimDefines::UNITS_METRIC)
|
||||
{
|
||||
wellDiameter.uiCapability()->setUiName("Well Diameter [m]");
|
||||
}
|
||||
else if (fractureUnit == RimDefines::UNITS_FIELD)
|
||||
{
|
||||
wellDiameter.uiCapability()->setUiName("Well Diameter [inches]");
|
||||
}
|
||||
|
||||
if (attachedFractureDefinition())
|
||||
{
|
||||
if (attachedFractureDefinition()->orientation == RimFractureTemplate::ALONG_WELL_PATH
|
||||
|
||||
@@ -57,7 +57,7 @@ public:
|
||||
caf::PdmField<double> azimuth;
|
||||
caf::PdmField<double> perforationLength;
|
||||
caf::PdmField<double> perforationEfficiency;
|
||||
caf::PdmField<double> wellRadius;
|
||||
caf::PdmField<double> wellDiameter;
|
||||
|
||||
caf::PdmField<double> dip;
|
||||
caf::PdmField<double> tilt;
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
|
||||
caf::PdmField< caf::AppEnum< RimDefines::UnitSystem > > fractureUnit;
|
||||
|
||||
|
||||
double wellRadius() const;
|
||||
cvf::Vec3d anchorPosition() const ;
|
||||
void setAnchorPosition(const cvf::Vec3d& pos);
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ RimFractureTemplate::RimFractureTemplate(void)
|
||||
CAF_PDM_InitField(&perforationLength, "PerforationLength", 0.0, "Perforation Length", "", "", "");
|
||||
CAF_PDM_InitField(&perforationEfficiency, "perforationEfficiency", 1.0, "perforation Efficiency", "", "", "");
|
||||
perforationEfficiency.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
|
||||
CAF_PDM_InitField(&wellRadius, "wellRadius", 0.0, "Well Radius at Fracture", "", "", "");
|
||||
CAF_PDM_InitField(&wellDiameter, "wellDiameter", 0.216, "Well Diameter at Fracture", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&fractureConductivity, "FractureCondictivity", caf::AppEnum<FracConductivityEnum>(INFINITE_CONDUCTIVITY), "Conductivity in Fracture", "", "", "");
|
||||
|
||||
@@ -88,7 +88,6 @@ RimFractureTemplate::~RimFractureTemplate()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -136,7 +135,7 @@ void RimFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
|
||||
}
|
||||
}
|
||||
|
||||
if (changedField == &perforationLength || changedField == &perforationEfficiency || changedField == &wellRadius)
|
||||
if (changedField == &perforationLength || changedField == &perforationEfficiency || changedField == &wellDiameter)
|
||||
{
|
||||
RimProject* proj;
|
||||
this->firstAncestorOrThisOfType(proj);
|
||||
@@ -156,9 +155,9 @@ void RimFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
|
||||
{
|
||||
fracture->perforationEfficiency = perforationEfficiency;
|
||||
}
|
||||
if (changedField == &wellRadius && (abs(oldValue.toDouble() - fracture->wellRadius()) < 1e-5))
|
||||
if (changedField == &wellDiameter && (abs(oldValue.toDouble() - fracture->wellDiameter()) < 1e-5))
|
||||
{
|
||||
fracture->wellRadius = wellRadius;
|
||||
fracture->wellDiameter = wellDiameter;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -209,3 +208,19 @@ void RimFractureTemplate::defineEditorAttribute(const caf::PdmFieldHandle* field
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureTemplate::setDefaultWellDiameterFromUnit()
|
||||
{
|
||||
if (fractureTemplateUnit == RimDefines::UNITS_FIELD)
|
||||
{
|
||||
wellDiameter = 8.5;
|
||||
}
|
||||
else if (fractureTemplateUnit == RimDefines::UNITS_METRIC)
|
||||
{
|
||||
wellDiameter = 0.216;
|
||||
}
|
||||
}
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
|
||||
caf::PdmField<double> perforationLength;
|
||||
caf::PdmField<double> perforationEfficiency;
|
||||
caf::PdmField<double> wellRadius;
|
||||
caf::PdmField<double> wellDiameter;
|
||||
|
||||
enum FracOrientationEnum
|
||||
{
|
||||
@@ -71,6 +71,8 @@ public:
|
||||
|
||||
caf::PdmField< caf::AppEnum< RimDefines::UnitSystem > > fractureTemplateUnit;
|
||||
|
||||
void setDefaultWellDiameterFromUnit();
|
||||
|
||||
virtual caf::PdmFieldHandle* userDescriptionField() override;
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ void RimSimWellFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrderi
|
||||
propertyGroup->add(&stimPlanTimeIndexToPlot);
|
||||
propertyGroup->add(&perforationLength);
|
||||
propertyGroup->add(&perforationEfficiency);
|
||||
propertyGroup->add(&wellRadius);
|
||||
propertyGroup->add(&wellDiameter);
|
||||
|
||||
caf::PdmUiGroup* fractureCenterGroup = uiOrdering.addNewGroup("Fracture Center Info");
|
||||
fractureCenterGroup->add(&m_uiAnchorPosition);
|
||||
|
||||
@@ -1097,7 +1097,7 @@ void RimStimPlanFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pd
|
||||
propertyGroup->add(&skinFactor);
|
||||
propertyGroup->add(&perforationLength);
|
||||
propertyGroup->add(&perforationEfficiency);
|
||||
propertyGroup->add(&wellRadius);
|
||||
propertyGroup->add(&wellDiameter);
|
||||
|
||||
caf::PdmUiGroup* polygonGroup = uiOrdering.addNewGroup("Fracture Polygon Basis");
|
||||
polygonGroup->add(¶meterForPolygon);
|
||||
|
||||
@@ -173,7 +173,7 @@ void RimWellPathFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrder
|
||||
propertyGroup->add(&stimPlanTimeIndexToPlot);
|
||||
propertyGroup->add(&perforationLength);
|
||||
propertyGroup->add(&perforationEfficiency);
|
||||
propertyGroup->add(&wellRadius);
|
||||
propertyGroup->add(&wellDiameter);
|
||||
|
||||
caf::PdmUiGroup* fractureCenterGroup = uiOrdering.addNewGroup("Fracture Center Info");
|
||||
fractureCenterGroup->add(&m_uiAnchorPosition);
|
||||
|
||||
Reference in New Issue
Block a user