Fracture : Separate permeability for ellipse and general user defined eff permeability

This commit is contained in:
Magne Sjaastad 2018-08-03 13:03:37 +02:00
parent d22f89f4d7
commit 3afca71095
3 changed files with 15 additions and 12 deletions

View File

@ -55,6 +55,7 @@ RimEllipseFractureTemplate::RimEllipseFractureTemplate()
CAF_PDM_InitField(&m_halfLength, "HalfLength", 0.0, "Halflength X<sub>f</sub>", "", "", ""); CAF_PDM_InitField(&m_halfLength, "HalfLength", 0.0, "Halflength X<sub>f</sub>", "", "", "");
CAF_PDM_InitField(&m_height, "Height", 0.0, "Height", "", "", ""); CAF_PDM_InitField(&m_height, "Height", 0.0, "Height", "", "", "");
CAF_PDM_InitField(&m_width, "Width", 0.0, "Width", "", "", ""); CAF_PDM_InitField(&m_width, "Width", 0.0, "Width", "", "", "");
CAF_PDM_InitField(&m_permeability,"Permeability", 0.0, "Permeability [mD]", "", "", "");
m_fractureGrid = new RigFractureGrid(); m_fractureGrid = new RigFractureGrid();
assignConductivityToCellsInsideEllipse(); assignConductivityToCellsInsideEllipse();
@ -88,7 +89,7 @@ void RimEllipseFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* cha
if ( changedField == &m_halfLength if ( changedField == &m_halfLength
|| changedField == &m_height || changedField == &m_height
|| changedField == &m_width || changedField == &m_width
|| changedField == &m_userDefinedEffectivePermeability || changedField == &m_permeability
|| changedField == &m_scaleApplyButton) || changedField == &m_scaleApplyButton)
{ {
m_scaleApplyButton = false; m_scaleApplyButton = false;
@ -97,7 +98,7 @@ void RimEllipseFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* cha
reload(); reload();
} }
if (changedField == &m_width || changedField == &m_userDefinedEffectivePermeability) if (changedField == &m_width || changedField == &m_permeability)
{ {
assignConductivityToCellsInsideEllipse(); assignConductivityToCellsInsideEllipse();
} }
@ -229,7 +230,7 @@ FractureWidthAndConductivity RimEllipseFractureTemplate::widthAndConductivityAtW
{ {
FractureWidthAndConductivity values; FractureWidthAndConductivity values;
values.m_width = m_width; values.m_width = m_width;
values.m_permeability = m_userDefinedEffectivePermeability; values.m_permeability = m_permeability;
return values; return values;
} }
@ -250,14 +251,14 @@ void RimEllipseFractureTemplate::setDefaultValuesFromUnit()
if (fractureTemplateUnit() == RiaEclipseUnitTools::UNITS_FIELD) if (fractureTemplateUnit() == RiaEclipseUnitTools::UNITS_FIELD)
{ {
m_width = 0.5; m_width = 0.5;
m_userDefinedEffectivePermeability = 80000.0; m_permeability = 80000.0;
m_halfLength = 300.0; m_halfLength = 300.0;
m_height = 225.0; m_height = 225.0;
} }
else else
{ {
m_width = 0.01; m_width = 0.01;
m_userDefinedEffectivePermeability = 100000.0; m_permeability = 100000.0;
m_halfLength = 100.0; m_halfLength = 100.0;
m_height = 75.0; m_height = 75.0;
} }
@ -274,12 +275,12 @@ double RimEllipseFractureTemplate::conductivity() const
if (fractureTemplateUnit() == RiaEclipseUnitTools::UNITS_METRIC) if (fractureTemplateUnit() == RiaEclipseUnitTools::UNITS_METRIC)
{ {
//Conductivity should be md-m, width is in m //Conductivity should be md-m, width is in m
cond = m_userDefinedEffectivePermeability * m_width; cond = m_permeability * m_width;
} }
else if (fractureTemplateUnit() == RiaEclipseUnitTools::UNITS_FIELD) else if (fractureTemplateUnit() == RiaEclipseUnitTools::UNITS_FIELD)
{ {
//Conductivity should be md-ft, but width is in inches //Conductivity should be md-ft, but width is in inches
cond = m_userDefinedEffectivePermeability * RiaEclipseUnitTools::inchToFeet(m_width); cond = m_permeability * RiaEclipseUnitTools::inchToFeet(m_width);
} }
return m_conductivityScaleFactor * cond; return m_conductivityScaleFactor * cond;
@ -377,7 +378,6 @@ void RimEllipseFractureTemplate::convertToUnitSystem(RiaEclipseUnitTools::UnitSy
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{ {
if (fractureTemplateUnit() == RiaEclipseUnitTools::UNITS_METRIC) if (fractureTemplateUnit() == RiaEclipseUnitTools::UNITS_METRIC)
{ {
m_halfLength.uiCapability()->setUiName("Halflenght X<sub>f</sub> [m]"); m_halfLength.uiCapability()->setUiName("Halflenght X<sub>f</sub> [m]");
@ -393,12 +393,12 @@ void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pdm
if (conductivityType() == FINITE_CONDUCTIVITY) if (conductivityType() == FINITE_CONDUCTIVITY)
{ {
m_userDefinedEffectivePermeability.uiCapability()->setUiHidden(false); m_permeability.uiCapability()->setUiHidden(false);
m_width.uiCapability()->setUiHidden(false); m_width.uiCapability()->setUiHidden(false);
} }
else if (conductivityType() == INFINITE_CONDUCTIVITY) else if (conductivityType() == INFINITE_CONDUCTIVITY)
{ {
m_userDefinedEffectivePermeability.uiCapability()->setUiHidden(true); m_permeability.uiCapability()->setUiHidden(true);
m_width.uiCapability()->setUiHidden(true); m_width.uiCapability()->setUiHidden(true);
} }
@ -416,7 +416,7 @@ void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pdm
caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties"); caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties");
propertyGroup->add(&m_conductivityType); propertyGroup->add(&m_conductivityType);
propertyGroup->add(&m_userDefinedEffectivePermeability); propertyGroup->add(&m_permeability);
propertyGroup->add(&m_width); propertyGroup->add(&m_width);
propertyGroup->add(&m_skinFactor); propertyGroup->add(&m_skinFactor);
propertyGroup->add(&m_perforationLength); propertyGroup->add(&m_perforationLength);

View File

@ -84,4 +84,5 @@ private:
caf::PdmField<double> m_halfLength; caf::PdmField<double> m_halfLength;
caf::PdmField<double> m_height; caf::PdmField<double> m_height;
caf::PdmField<double> m_width; caf::PdmField<double> m_width;
caf::PdmField<double> m_permeability;
}; };

View File

@ -203,7 +203,6 @@ protected:
caf::PdmField<caf::AppEnum<PermeabilityEnum>> m_permeabilityType; caf::PdmField<caf::AppEnum<PermeabilityEnum>> m_permeabilityType;
caf::PdmField<double> m_relativePermeability; caf::PdmField<double> m_relativePermeability;
caf::PdmField<double> m_userDefinedEffectivePermeability;
caf::PdmField<double> m_relativeGasDensity; caf::PdmField<double> m_relativeGasDensity;
caf::PdmField<double> m_gasViscosity; caf::PdmField<double> m_gasViscosity;
@ -216,4 +215,7 @@ protected:
caf::PdmField<double> m_dFactorScaleFactor; caf::PdmField<double> m_dFactorScaleFactor;
caf::PdmField<double> m_conductivityScaleFactor; caf::PdmField<double> m_conductivityScaleFactor;
caf::PdmField<bool> m_scaleApplyButton; caf::PdmField<bool> m_scaleApplyButton;
private:
caf::PdmField<double> m_userDefinedEffectivePermeability;
}; };