#2455 Non-Darcy Flow : Add fields to fracture template

This commit is contained in:
Magne Sjaastad
2018-02-16 07:58:07 +01:00
parent 6b246f4671
commit ac96824640
6 changed files with 104 additions and 23 deletions

View File

@@ -76,8 +76,8 @@ namespace caf
void caf::AppEnum<RimFractureTemplate::NonDarcyFlowEnum>::setUp()
{
addItem(RimFractureTemplate::NON_DARCY_NONE, "None", "None");
addItem(RimFractureTemplate::NON_DARCY_COMPUTED, "Computed", "Computed by Parameters");
addItem(RimFractureTemplate::NON_DARCY_USER_DEFINED, "UserDefined", "User Defined Value");
addItem(RimFractureTemplate::NON_DARCY_COMPUTED, "Computed", "Compute D-factor from Parameters");
addItem(RimFractureTemplate::NON_DARCY_USER_DEFINED, "UserDefined", "By User Defined D-factor");
setDefault(RimFractureTemplate::NON_DARCY_NONE);
}
@@ -134,7 +134,7 @@ RimFractureTemplate::RimFractureTemplate()
CAF_PDM_InitField(&m_gasViscosity, "GasViscosity", 0.02, "<html>Gas Viscosity (&mu;)</html>", "", "Gas viscosity at bottom hole pressure", "");
CAF_PDM_InitFieldNoDefault(&m_dFactorDisplayField, "dFactorDisplayField", "D Factor", "", "", "");
m_dFactorDisplayField.registerGetMethod(this, &RimFractureTemplate::computeDFactor);
m_dFactorDisplayField.registerGetMethod(this, &RimFractureTemplate::dFactor);
m_dFactorDisplayField.uiCapability()->setUiReadOnly(true);
CAF_PDM_InitFieldNoDefault(&m_dFactorSummaryText, "dFactorSummaryText", "D Factor Summary", "", "", "");
@@ -438,18 +438,15 @@ void RimFractureTemplate::prepareFieldsForUiDisplay()
m_fractureWidth.uiCapability()->setUiReadOnly(true);
}
if (hideNonDarcyFlowParams)
if (m_permeabilityType == RimFractureTemplate::USER_DEFINED_PERMEABILITY)
{
if (m_permeabilityType == RimFractureTemplate::USER_DEFINED_PERMEABILITY)
{
m_relativePermeability.uiCapability()->setUiHidden(true);
m_userDefinedEffectivePermeability.uiCapability()->setUiHidden(false);
}
else
{
m_relativePermeability.uiCapability()->setUiHidden(false);
m_userDefinedEffectivePermeability.uiCapability()->setUiHidden(true);
}
m_relativePermeability.uiCapability()->setUiHidden(true);
m_userDefinedEffectivePermeability.uiCapability()->setUiHidden(false);
}
else
{
m_relativePermeability.uiCapability()->setUiHidden(false);
m_userDefinedEffectivePermeability.uiCapability()->setUiHidden(true);
}
}
@@ -460,8 +457,8 @@ QString RimFractureTemplate::dFactorSummary() const
{
QString text;
auto dFactor = computeDFactor();
text += QString("D-factor : %1").arg(dFactor);
auto val = dFactor();
text += QString("D-factor : %1").arg(val);
text += "<br>";
text += "<br>";
@@ -517,7 +514,7 @@ double RimFractureTemplate::effectivePermeability() const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RimFractureTemplate::computeDFactor() const
double RimFractureTemplate::dFactor() const
{
if (m_nonDarcyFlowType == RimFractureTemplate::NON_DARCY_USER_DEFINED)
{
@@ -541,6 +538,14 @@ double RimFractureTemplate::computeDFactor() const
return numerator / denumerator;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RimFractureTemplate::kh() const
{
return effectivePermeability() * fractureWidth();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -648,3 +653,11 @@ void RimFractureTemplate::setDefaultWellDiameterFromUnit()
m_wellDiameter = 0.216;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimFractureTemplate::isNonDarcyFlowEnabled() const
{
return m_nonDarcyFlowType() != RimFractureTemplate::NON_DARCY_NONE;
}

View File

@@ -125,6 +125,10 @@ public:
void setFractureTemplateUnit(RiaEclipseUnitTools::UnitSystemType unitSystem);
void setDefaultWellDiameterFromUnit();
bool isNonDarcyFlowEnabled() const;
double dFactor() const;
double kh() const;
protected:
virtual caf::PdmFieldHandle* userDescriptionField() override;
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
@@ -138,7 +142,6 @@ private:
QString dFactorSummary() const;
double effectivePermeability() const;
double computeDFactor() const;
double fractureWidth() const;
protected: