diff --git a/ApplicationCode/CommandFileInterface/RicfScaleFractureTemplate.cpp b/ApplicationCode/CommandFileInterface/RicfScaleFractureTemplate.cpp index 47f5dee3c1..ac79a28717 100644 --- a/ApplicationCode/CommandFileInterface/RicfScaleFractureTemplate.cpp +++ b/ApplicationCode/CommandFileInterface/RicfScaleFractureTemplate.cpp @@ -33,10 +33,11 @@ CAF_PDM_SOURCE_INIT(RicfScaleFractureTemplate, "scaleFractureTemplate"); //-------------------------------------------------------------------------------------------------- RicfScaleFractureTemplate::RicfScaleFractureTemplate() { - RICF_InitField(&m_id, "id", -1, "Id", "", "", ""); - RICF_InitField(&m_widthScaleFactor, "width", 1.0, "WidthScaleFactor", "", "", ""); - RICF_InitField(&m_heightScaleFactor, "height", 1.0, "HeightScaleFactor", "", "", ""); - RICF_InitField(&m_dFactorScaleFactor, "dFactor", 1.0, "DFactorScaleFactor", "", "", ""); + RICF_InitField(&m_id, "id", -1, "Id", "", "", ""); + RICF_InitField(&m_widthScaleFactor, "width", 1.0, "WidthScaleFactor", "", "", ""); + RICF_InitField(&m_heightScaleFactor, "height", 1.0, "HeightScaleFactor", "", "", ""); + RICF_InitField(&m_dFactorScaleFactor, "dFactor", 1.0, "DFactorScaleFactor", "", "", ""); + RICF_InitField(&m_conductivityScaleFactor, "conductivity", 1.0, "ConductivityScaleFactor", "", "", ""); } //-------------------------------------------------------------------------------------------------- @@ -67,6 +68,6 @@ void RicfScaleFractureTemplate::execute() return; } - templ->setScaleFactors(m_widthScaleFactor, m_heightScaleFactor, m_dFactorScaleFactor); + templ->setScaleFactors(m_widthScaleFactor, m_heightScaleFactor, m_dFactorScaleFactor, m_conductivityScaleFactor); templ->reload(); } diff --git a/ApplicationCode/CommandFileInterface/RicfScaleFractureTemplate.h b/ApplicationCode/CommandFileInterface/RicfScaleFractureTemplate.h index 73567d7916..bb78233215 100644 --- a/ApplicationCode/CommandFileInterface/RicfScaleFractureTemplate.h +++ b/ApplicationCode/CommandFileInterface/RicfScaleFractureTemplate.h @@ -43,4 +43,5 @@ private: caf::PdmField m_widthScaleFactor; caf::PdmField m_heightScaleFactor; caf::PdmField m_dFactorScaleFactor; + caf::PdmField m_conductivityScaleFactor; }; diff --git a/ApplicationCode/ProjectDataModel/Completions/RimFractureTemplate.cpp b/ApplicationCode/ProjectDataModel/Completions/RimFractureTemplate.cpp index 599bc28569..df7febc924 100644 --- a/ApplicationCode/ProjectDataModel/Completions/RimFractureTemplate.cpp +++ b/ApplicationCode/ProjectDataModel/Completions/RimFractureTemplate.cpp @@ -161,7 +161,9 @@ RimFractureTemplate::RimFractureTemplate() CAF_PDM_InitField(&m_heightScaleFactor, "HeightScaleFactor", 1.0, "Height", "", "", ""); CAF_PDM_InitField(&m_widthScaleFactor, "WidthScaleFactor", 1.0, "Width", "", "", ""); CAF_PDM_InitField(&m_dFactorScaleFactor, "DFactorScaleFactor", 1.0, "D-factor", "", "", ""); + CAF_PDM_InitField(&m_conductivityScaleFactor, "ConductivityFactor", 1.0, "Conductivity", "", "The conductivity values read from file will be scaled with this parameters", ""); CAF_PDM_InitField(&m_scaleApplyButton, "ScaleApplyButton", false, "Apply", "", "", ""); + m_scaleApplyButton.xmlCapability()->disableIO(); m_scaleApplyButton.uiCapability()->setUiEditorTypeName(caf::PdmUiPushButtonEditor::uiEditorTypeName()); m_scaleApplyButton.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN); @@ -322,6 +324,11 @@ void RimFractureTemplate::defineUiOrdering(QString uiConfigName, caf::PdmUiOrder group->add(&m_heightScaleFactor); group->add(&m_widthScaleFactor); group->add(&m_dFactorScaleFactor); + + if (supportsConductivityScaling()) + { + group->add(&m_conductivityScaleFactor); + } group->add(&m_scaleApplyButton); } @@ -668,11 +675,12 @@ void RimFractureTemplate::setId(int id) //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimFractureTemplate::setScaleFactors(double width, double height, double dFactor) +void RimFractureTemplate::setScaleFactors(double width, double height, double dFactor, double conductivity) { m_widthScaleFactor = width; m_heightScaleFactor = height; m_dFactorScaleFactor = dFactor; + m_conductivityScaleFactor = supportsConductivityScaling() ? conductivity : 1.0; } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/Completions/RimFractureTemplate.h b/ApplicationCode/ProjectDataModel/Completions/RimFractureTemplate.h index 9984082e21..928d6fa0be 100644 --- a/ApplicationCode/ProjectDataModel/Completions/RimFractureTemplate.h +++ b/ApplicationCode/ProjectDataModel/Completions/RimFractureTemplate.h @@ -147,7 +147,7 @@ public: void disconnectAllFracturesAndRedrawViews() const; void setId(int id); - void setScaleFactors(double width, double height, double dFactor); + void setScaleFactors(double width, double height, double dFactor, double conductivity); virtual void reload() {} protected: @@ -157,6 +157,8 @@ protected: virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override; virtual QList calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) override; + virtual bool supportsConductivityScaling() const { return false; } + private: void prepareFieldsForUiDisplay(); virtual FractureWidthAndConductivity widthAndConductivityAtWellPathIntersection() const = 0; @@ -201,5 +203,6 @@ protected: caf::PdmField m_heightScaleFactor; caf::PdmField m_widthScaleFactor; caf::PdmField m_dFactorScaleFactor; + caf::PdmField m_conductivityScaleFactor; caf::PdmField m_scaleApplyButton; }; diff --git a/ApplicationCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.cpp b/ApplicationCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.cpp index 071e57ff8d..8e5adec3d2 100644 --- a/ApplicationCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.cpp +++ b/ApplicationCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.cpp @@ -71,7 +71,6 @@ RimStimPlanFractureTemplate::RimStimPlanFractureTemplate() m_borderPolygonResultName.uiCapability()->setUiHidden(true); CAF_PDM_InitField(&m_activeTimeStepIndex, "ActiveTimeStepIndex", 0, "Active TimeStep Index", "", "", ""); - CAF_PDM_InitField(&m_conductivityScalingFactor, "ConductivityFactor", 1.0, "Conductivity Scaling Factor", "", "The conductivity values read from file will be scaled with this parameters", ""); CAF_PDM_InitField(&m_conductivityResultNameOnFile, "ConductivityResultName", QString(""), "Active Conductivity Result Name", "", "", ""); CAF_PDM_InitField(&m_showStimPlanMesh_OBSOLETE, "ShowStimPlanMesh", true, "", "", "", ""); @@ -130,15 +129,9 @@ void RimStimPlanFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* ch } } - if (&m_conductivityScalingFactor == changedField) - { - loadDataAndUpdate(); - } - if (&m_wellPathDepthAtFracture == changedField || &m_borderPolygonResultName == changedField || &m_activeTimeStepIndex == changedField - || &m_conductivityScalingFactor == changedField || &m_stimPlanFileName == changedField || &m_conductivityResultNameOnFile == changedField) { @@ -246,7 +239,7 @@ void RimStimPlanFractureTemplate::loadDataAndUpdate() if (m_readError) return; m_stimPlanFractureDefinitionData = RifStimPlanXmlReader::readStimPlanXMLFile( m_stimPlanFileName(), - m_conductivityScalingFactor(), + m_conductivityScaleFactor(), m_widthScaleFactor(), m_heightScaleFactor(), -m_wellPathDepthAtFracture(), @@ -791,7 +784,6 @@ void RimStimPlanFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pd caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties"); propertyGroup->add(&m_conductivityResultNameOnFile); - propertyGroup->add(&m_conductivityScalingFactor); propertyGroup->add(&m_conductivityType); propertyGroup->add(&m_skinFactor); propertyGroup->add(&m_perforationLength); diff --git a/ApplicationCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.h b/ApplicationCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.h index 0c01918497..9d5001778e 100644 --- a/ApplicationCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.h +++ b/ApplicationCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.h @@ -100,6 +100,8 @@ protected: virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute) override; + virtual bool supportsConductivityScaling() const override { return true; } + private: bool setBorderPolygonResultNameToDefault(); void setDepthOfWellPathAtFracture(); @@ -118,7 +120,6 @@ private: caf::PdmField m_stimPlanFileName; cvf::ref m_stimPlanFractureDefinitionData; - caf::PdmField m_conductivityScalingFactor; cvf::ref m_fractureGrid; bool m_readError;