#1416 Adding unit and conversion for perforation length for fractures and fracture templates

This commit is contained in:
astridkbjorke 2017-06-08 11:00:35 +02:00
parent a80660d756
commit 57d12a3164
4 changed files with 19 additions and 13 deletions

View File

@ -171,6 +171,7 @@ void RimEllipseFractureTemplate::changeUnits()
height = RimDefines::meterToFeet(height);
width = RimDefines::meterToInch(width);
wellDiameter = RimDefines::meterToInch(wellDiameter);
perforationLength = RimDefines::meterToFeet(perforationLength);
fractureTemplateUnit = RimDefines::UNITS_FIELD;
}
else if (fractureTemplateUnit == RimDefines::UNITS_FIELD)
@ -179,6 +180,7 @@ void RimEllipseFractureTemplate::changeUnits()
height = RimDefines::feetToMeter(height);
width = RimDefines::inchToMeter(width);
wellDiameter = RimDefines::inchToMeter(wellDiameter);
perforationLength = RimDefines::feetToMeter(perforationLength);
fractureTemplateUnit = RimDefines::UNITS_METRIC;
}

View File

@ -83,7 +83,7 @@ RimFracture::RimFracture(void)
m_uiAnchorPosition.uiCapability()->setUiReadOnly(true);
CAF_PDM_InitField(&azimuth, "Azimuth", 0.0, "Azimuth", "", "", "");
azimuth.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
CAF_PDM_InitField(&perforationLength, "PerforationLength", 0.0, "Perforation Length", "", "", "");
CAF_PDM_InitField(&perforationLength, "PerforationLength", 1.0, "Perforation Length", "", "", "");
CAF_PDM_InitField(&perforationEfficiency, "perforationEfficiency", 1.0, "perforation Efficiency", "", "", "");
perforationEfficiency.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
CAF_PDM_InitField(&wellDiameter, "wellDiameter", 0.216, "Well Diameter at Fracture", "", "", "");
@ -167,10 +167,12 @@ void RimFracture::fieldChangedByUi(const caf::PdmFieldHandle* changedField, cons
if (fractureUnit == RimDefines::UNITS_METRIC)
{
wellDiameter = RimDefines::inchToMeter(wellDiameter);
perforationLength = RimDefines::feetToMeter(perforationLength);
}
else if (fractureUnit == RimDefines::UNITS_FIELD)
{
wellDiameter = RimDefines::meterToInch(wellDiameter);
perforationLength = RimDefines::meterToFeet(perforationLength);
}
this->updateConnectedEditors();
}
@ -396,23 +398,15 @@ QList<caf::PdmOptionItemInfo> RimFracture::calculateValueOptions(const caf::PdmF
//--------------------------------------------------------------------------------------------------
void RimFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{
updateFieldVisibility();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimFracture::updateFieldVisibility()
{
if (fractureUnit == RimDefines::UNITS_METRIC)
{
wellDiameter.uiCapability()->setUiName("Well Diameter [m]");
perforationLength.uiCapability()->setUiName("Perforation Length [m]");
}
else if (fractureUnit == RimDefines::UNITS_FIELD)
{
wellDiameter.uiCapability()->setUiName("Well Diameter [inches]");
perforationLength.uiCapability()->setUiName("Perforation Length [Ft]");
}
if (attachedFractureDefinition())

View File

@ -102,7 +102,6 @@ protected:
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute) override;
private:
void updateFieldVisibility();
bool isRecomputeGeometryFlagSet();
cvf::Vec3d fracturePositionForUi() const;

View File

@ -72,7 +72,7 @@ RimFractureTemplate::RimFractureTemplate(void)
CAF_PDM_InitField(&azimuthAngle, "AzimuthAngle", 0.0f, "Azimuth Angle", "", "", ""); //Is this correct description?
CAF_PDM_InitField(&skinFactor, "SkinFactor", 1.0f, "Skin Factor", "", "", "");
CAF_PDM_InitField(&perforationLength, "PerforationLength", 0.0, "Perforation Length", "", "", "");
CAF_PDM_InitField(&perforationLength, "PerforationLength", 1.0, "Perforation Length", "", "", "");
CAF_PDM_InitField(&perforationEfficiency, "perforationEfficiency", 1.0, "perforation Efficiency", "", "", "");
perforationEfficiency.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
CAF_PDM_InitField(&wellDiameter, "wellDiameter", 0.216, "Well Diameter at Fracture", "", "", "");
@ -170,6 +170,17 @@ void RimFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
void RimFractureTemplate::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{
if (fractureTemplateUnit == RimDefines::UNITS_METRIC)
{
wellDiameter.uiCapability()->setUiName("Well Diameter [m]");
perforationLength.uiCapability()->setUiName("Perforation Length [m]");
}
else if (fractureTemplateUnit == RimDefines::UNITS_FIELD)
{
wellDiameter.uiCapability()->setUiName("Well Diameter [inches]");
perforationLength.uiCapability()->setUiName("Perforation Length [Ft]");
}
if (orientation == RimFractureTemplate::ALONG_WELL_PATH
|| orientation == RimFractureTemplate::TRANSVERSE_WELL_PATH)
{