mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2495 Add batch command argument for D-factor scaling
This commit is contained in:
@@ -36,6 +36,7 @@ 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", "", "", "");
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -66,6 +67,6 @@ void RicfScaleFractureTemplate::execute()
|
||||
return;
|
||||
}
|
||||
|
||||
templ->setScaleFactors(m_widthScaleFactor, m_heightScaleFactor);
|
||||
templ->setScaleFactors(m_widthScaleFactor, m_heightScaleFactor, m_dFactorScaleFactor);
|
||||
templ->reload();
|
||||
}
|
||||
|
||||
@@ -42,4 +42,5 @@ private:
|
||||
caf::PdmField<int> m_id;
|
||||
caf::PdmField<double> m_widthScaleFactor;
|
||||
caf::PdmField<double> m_heightScaleFactor;
|
||||
caf::PdmField<double> m_dFactorScaleFactor;
|
||||
};
|
||||
|
||||
@@ -91,9 +91,9 @@ void RimEllipseFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* cha
|
||||
|| changedField == &m_height
|
||||
|| changedField == &m_width
|
||||
|| changedField == &m_userDefinedEffectivePermeability
|
||||
|| changedField == &m_sizeScaleApplyButton)
|
||||
|| changedField == &m_scaleApplyButton)
|
||||
{
|
||||
m_sizeScaleApplyButton = false;
|
||||
m_scaleApplyButton = false;
|
||||
|
||||
//Changes to one of these parameters should change all fractures with this fracture template attached.
|
||||
reload();
|
||||
|
||||
@@ -158,12 +158,13 @@ RimFractureTemplate::RimFractureTemplate()
|
||||
m_dFactorSummaryText.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::LabelPosType::TOP);
|
||||
m_dFactorSummaryText.xmlCapability()->disableIO();
|
||||
|
||||
CAF_PDM_InitField(&m_heightScaleFactor, "HeightScaleFactor", 1.0, "Height Scale Factor", "", "", "");
|
||||
CAF_PDM_InitField(&m_widthScaleFactor, "WidthScaleFactor", 1.0, "Width Scale Factor", "", "", "");
|
||||
CAF_PDM_InitField(&m_sizeScaleApplyButton, "SizeScaleApplyButton", false, "Apply", "", "", "");
|
||||
m_sizeScaleApplyButton.xmlCapability()->disableIO();
|
||||
m_sizeScaleApplyButton.uiCapability()->setUiEditorTypeName(caf::PdmUiPushButtonEditor::uiEditorTypeName());
|
||||
m_sizeScaleApplyButton.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
|
||||
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_scaleApplyButton, "ScaleApplyButton", false, "Apply", "", "", "");
|
||||
m_scaleApplyButton.xmlCapability()->disableIO();
|
||||
m_scaleApplyButton.uiCapability()->setUiEditorTypeName(caf::PdmUiPushButtonEditor::uiEditorTypeName());
|
||||
m_scaleApplyButton.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -316,11 +317,12 @@ void RimFractureTemplate::defineUiOrdering(QString uiConfigName, caf::PdmUiOrder
|
||||
prepareFieldsForUiDisplay();
|
||||
|
||||
{
|
||||
auto group = uiOrdering.addNewGroup("Scale Factors");
|
||||
auto group = uiOrdering.addNewGroup("Sensitivity Scale Factors");
|
||||
group->setCollapsedByDefault(false);
|
||||
group->add(&m_heightScaleFactor);
|
||||
group->add(&m_widthScaleFactor);
|
||||
group->add(&m_sizeScaleApplyButton);
|
||||
group->add(&m_dFactorScaleFactor);
|
||||
group->add(&m_scaleApplyButton);
|
||||
}
|
||||
|
||||
auto nonDarcyFlowGroup = uiOrdering.addNewGroup("Non-Darcy Flow");
|
||||
@@ -391,7 +393,7 @@ void RimFractureTemplate::defineEditorAttribute(const caf::PdmFieldHandle* field
|
||||
}
|
||||
}
|
||||
|
||||
if (field == &m_sizeScaleApplyButton)
|
||||
if (field == &m_scaleApplyButton)
|
||||
{
|
||||
caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*> (attribute);
|
||||
if (attrib)
|
||||
@@ -572,26 +574,32 @@ double RimFractureTemplate::effectivePermeability() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RimFractureTemplate::dFactor() const
|
||||
{
|
||||
double d;
|
||||
|
||||
if (m_nonDarcyFlowType == RimFractureTemplate::NON_DARCY_USER_DEFINED)
|
||||
{
|
||||
return m_userDefinedDFactor;
|
||||
d = m_userDefinedDFactor;
|
||||
}
|
||||
else
|
||||
{
|
||||
auto alpha = RiaDefines::nonDarcyFlowAlpha(m_fractureTemplateUnit());
|
||||
auto beta = m_inertialCoefficient;
|
||||
auto effPerm = effectivePermeability();
|
||||
auto gamma = m_relativeGasDensity;
|
||||
|
||||
auto radius = m_wellDiameter / 2.0;
|
||||
auto mu = m_gasViscosity;
|
||||
auto h = fractureWidth();
|
||||
|
||||
double numerator = alpha * beta * effPerm * gamma;
|
||||
double denumerator = h * radius * mu;
|
||||
|
||||
if (denumerator < 1e-10) return HUGE_VAL;
|
||||
|
||||
d = numerator / denumerator;
|
||||
}
|
||||
|
||||
auto alpha = RiaDefines::nonDarcyFlowAlpha(m_fractureTemplateUnit());
|
||||
auto beta = m_inertialCoefficient;
|
||||
auto effPerm = effectivePermeability();
|
||||
auto gamma = m_relativeGasDensity;
|
||||
|
||||
auto radius = m_wellDiameter / 2.0;
|
||||
auto mu = m_gasViscosity;
|
||||
auto h = fractureWidth();
|
||||
|
||||
double numerator = alpha * beta * effPerm * gamma;
|
||||
double denumerator = h * radius * mu;
|
||||
|
||||
if (denumerator < 1e-10) return HUGE_VAL;
|
||||
|
||||
return numerator / denumerator;
|
||||
return d * m_dFactorScaleFactor;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -660,10 +668,11 @@ void RimFractureTemplate::setId(int id)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureTemplate::setScaleFactors(double width, double height)
|
||||
void RimFractureTemplate::setScaleFactors(double width, double height, double dFactor)
|
||||
{
|
||||
m_widthScaleFactor = width;
|
||||
m_heightScaleFactor = height;
|
||||
m_dFactorScaleFactor = dFactor;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -147,7 +147,7 @@ public:
|
||||
|
||||
void disconnectAllFracturesAndRedrawViews() const;
|
||||
void setId(int id);
|
||||
void setScaleFactors(double width, double height);
|
||||
void setScaleFactors(double width, double height, double dFactor);
|
||||
virtual void reload() {}
|
||||
|
||||
protected:
|
||||
@@ -200,5 +200,6 @@ protected:
|
||||
|
||||
caf::PdmField<double> m_heightScaleFactor;
|
||||
caf::PdmField<double> m_widthScaleFactor;
|
||||
caf::PdmField<bool> m_sizeScaleApplyButton;
|
||||
caf::PdmField<double> m_dFactorScaleFactor;
|
||||
caf::PdmField<bool> m_scaleApplyButton;
|
||||
};
|
||||
|
||||
@@ -152,9 +152,9 @@ void RimStimPlanFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* ch
|
||||
}
|
||||
}
|
||||
|
||||
if (changedField == &m_sizeScaleApplyButton)
|
||||
if (changedField == &m_scaleApplyButton)
|
||||
{
|
||||
m_sizeScaleApplyButton = false;
|
||||
m_scaleApplyButton = false;
|
||||
reload();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user