#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:
astridkbjorke
2017-06-08 09:15:50 +02:00
parent 454e2e1559
commit a80660d756
10 changed files with 80 additions and 19 deletions

View File

@@ -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