#2442 Fracture Template : Move several fields from public to protected

This commit is contained in:
Magne Sjaastad
2018-02-08 11:34:18 +01:00
parent beb122c6d0
commit 80eefb3141
6 changed files with 126 additions and 101 deletions

View File

@@ -181,7 +181,7 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateCompdat
RigEclipseToStimPlanCellTransmissibilityCalculator eclToFractureTransCalc(caseToApply,
fracture->transformMatrix(),
fracture->fractureTemplate()->skinFactor,
fracture->fractureTemplate()->skinFactor(),
cDarcyInCorrectUnit,
fractureCell);

View File

@@ -178,8 +178,8 @@ void RimEllipseFractureTemplate::changeUnits()
m_halfLength = RiaEclipseUnitTools::meterToFeet(m_halfLength);
m_height = RiaEclipseUnitTools::meterToFeet(m_height);
m_width = RiaEclipseUnitTools::meterToInch(m_width);
wellDiameter = RiaEclipseUnitTools::meterToInch(wellDiameter);
perforationLength = RiaEclipseUnitTools::meterToFeet(perforationLength);
m_wellDiameter = RiaEclipseUnitTools::meterToInch(m_wellDiameter);
m_perforationLength = RiaEclipseUnitTools::meterToFeet(m_perforationLength);
fractureTemplateUnit = RiaEclipseUnitTools::UNITS_FIELD;
}
else if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_FIELD)
@@ -187,8 +187,8 @@ void RimEllipseFractureTemplate::changeUnits()
m_halfLength = RiaEclipseUnitTools::feetToMeter(m_halfLength);
m_height = RiaEclipseUnitTools::feetToMeter(m_height);
m_width = RiaEclipseUnitTools::inchToMeter(m_width);
wellDiameter = RiaEclipseUnitTools::inchToMeter(wellDiameter);
perforationLength = RiaEclipseUnitTools::feetToMeter(perforationLength);
m_wellDiameter = RiaEclipseUnitTools::inchToMeter(m_wellDiameter);
m_perforationLength = RiaEclipseUnitTools::feetToMeter(m_perforationLength);
fractureTemplateUnit = RiaEclipseUnitTools::UNITS_METRIC;
}
@@ -355,23 +355,23 @@ void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pdm
m_halfLength.uiCapability()->setUiName("Halflenght X<sub>f</sub> [m]");
m_height.uiCapability()->setUiName("Height [m]");
m_width.uiCapability()->setUiName("Width [m]");
wellDiameter.uiCapability()->setUiName("Well Diameter [m]");
m_wellDiameter.uiCapability()->setUiName("Well Diameter [m]");
}
else if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_FIELD)
{
m_halfLength.uiCapability()->setUiName("Halflenght X<sub>f</sub> [Ft]");
m_height.uiCapability()->setUiName("Height [Ft]");
m_width.uiCapability()->setUiName("Width [inches]");
wellDiameter.uiCapability()->setUiName("Well Diameter [inches]");
m_wellDiameter.uiCapability()->setUiName("Well Diameter [inches]");
}
if (conductivityType == FINITE_CONDUCTIVITY)
if (conductivityType() == FINITE_CONDUCTIVITY)
{
m_permeability.uiCapability()->setUiHidden(false);
m_width.uiCapability()->setUiHidden(false);
}
else if (conductivityType == INFINITE_CONDUCTIVITY)
else if (conductivityType() == INFINITE_CONDUCTIVITY)
{
m_permeability.uiCapability()->setUiHidden(true);
m_width.uiCapability()->setUiHidden(true);
@@ -384,19 +384,19 @@ void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pdm
geometryGroup->add(&m_halfLength);
geometryGroup->add(&m_height);
geometryGroup->add(&orientationType);
geometryGroup->add(&azimuthAngle);
geometryGroup->add(&m_azimuthAngle);
caf::PdmUiGroup* trGr = uiOrdering.addNewGroup("Fracture Truncation");
m_fractureContainment()->defineUiOrdering(uiConfigName, *trGr);
caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties");
propertyGroup->add(&conductivityType);
propertyGroup->add(&m_conductivityType);
propertyGroup->add(&m_permeability);
propertyGroup->add(&m_width);
propertyGroup->add(&skinFactor);
propertyGroup->add(&perforationLength);
propertyGroup->add(&perforationEfficiency);
propertyGroup->add(&wellDiameter);
propertyGroup->add(&m_skinFactor);
propertyGroup->add(&m_perforationLength);
propertyGroup->add(&m_perforationEfficiency);
propertyGroup->add(&m_wellDiameter);
uiOrdering.add(&fractureTemplateUnit);
uiOrdering.skipRemainingFields(true);

View File

@@ -483,11 +483,11 @@ void RimFracture::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiO
m_perforationLength.uiCapability()->setUiHidden(true);
}
if (fractureTemplate()->conductivityType == RimFractureTemplate::FINITE_CONDUCTIVITY)
if (fractureTemplate()->conductivityType() == RimFractureTemplate::FINITE_CONDUCTIVITY)
{
m_wellDiameter.uiCapability()->setUiHidden(false);
}
else if (fractureTemplate()->conductivityType == RimFractureTemplate::INFINITE_CONDUCTIVITY)
else if (fractureTemplate()->conductivityType() == RimFractureTemplate::INFINITE_CONDUCTIVITY)
{
m_wellDiameter.uiCapability()->setUiHidden(true);
}
@@ -628,7 +628,7 @@ void RimFracture::setFractureTemplate(RimFractureTemplate* fractureTemplate)
if (fractureTemplate->orientationType == RimFractureTemplate::AZIMUTH)
{
m_azimuth = fractureTemplate->azimuthAngle;
m_azimuth = fractureTemplate->azimuthAngle();
}
else
{

View File

@@ -69,16 +69,16 @@ RimFractureTemplate::RimFractureTemplate()
CAF_PDM_InitField(&fractureTemplateUnit,"UnitSystem", caf::AppEnum<RiaEclipseUnitTools::UnitSystem>(RiaEclipseUnitTools::UNITS_METRIC), "Units System", "", "", "");
fractureTemplateUnit.uiCapability()->setUiReadOnly(true);
CAF_PDM_InitField(&orientationType, "Orientation", caf::AppEnum<FracOrientationEnum>(TRANSVERSE_WELL_PATH), "Fracture Orientation", "", "", "");
CAF_PDM_InitField(&azimuthAngle, "AzimuthAngle", 0.0f, "Azimuth Angle", "", "", ""); //Is this correct description?
CAF_PDM_InitField(&skinFactor, "SkinFactor", 0.0f, "Skin Factor", "", "", "");
CAF_PDM_InitField(&orientationType, "Orientation", caf::AppEnum<FracOrientationEnum>(TRANSVERSE_WELL_PATH), "Fracture Orientation", "", "", "");
CAF_PDM_InitField(&m_azimuthAngle, "AzimuthAngle", 0.0f, "Azimuth Angle", "", "", ""); //Is this correct description?
CAF_PDM_InitField(&m_skinFactor, "SkinFactor", 0.0f, "Skin Factor", "", "", "");
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", "", "", "");
CAF_PDM_InitField(&m_perforationLength, "PerforationLength", 1.0, "Perforation Length", "", "", "");
CAF_PDM_InitField(&m_perforationEfficiency, "PerforationEfficiency", 1.0, "Perforation Efficiency", "", "", "");
m_perforationEfficiency.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
CAF_PDM_InitField(&m_wellDiameter, "WellDiameter", 0.216, "Well Diameter at Fracture", "", "", "");
CAF_PDM_InitField(&conductivityType, "ConductivityType", caf::AppEnum<FracConductivityEnum>(FINITE_CONDUCTIVITY), "Conductivity in Fracture", "", "", "");
CAF_PDM_InitField(&m_conductivityType, "ConductivityType", caf::AppEnum<FracConductivityEnum>(FINITE_CONDUCTIVITY), "Conductivity in Fracture", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_fractureContainment, "FractureContainmentField", "Fracture Containment", "", "", "");
m_fractureContainment = new RimFractureContainment();
@@ -106,7 +106,7 @@ caf::PdmFieldHandle* RimFractureTemplate::userDescriptionField()
//--------------------------------------------------------------------------------------------------
void RimFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
{
if (changedField == &azimuthAngle || changedField == &orientationType)
if (changedField == &m_azimuthAngle || changedField == &orientationType)
{
//Changes to one of these parameters should change all fractures with this fracture template attached.
RimProject* proj;
@@ -121,16 +121,16 @@ void RimFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
{
if (fracture->fractureTemplate() == this)
{
if (changedField == &azimuthAngle && (fabs(oldValue.toDouble() - fracture->m_azimuth()) < 1e-5))
if (changedField == &m_azimuthAngle && (fabs(oldValue.toDouble() - fracture->m_azimuth()) < 1e-5))
{
fracture->m_azimuth = azimuthAngle;
fracture->m_azimuth = m_azimuthAngle;
}
if (changedField == &orientationType)
{
if (newValue == AZIMUTH)
{
fracture->m_azimuth = azimuthAngle;
fracture->m_azimuth = m_azimuthAngle;
}
else fracture->updateAzimuthBasedOnWellAzimuthAngle();
}
@@ -141,7 +141,7 @@ void RimFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
}
}
if (changedField == &perforationLength || changedField == &perforationEfficiency || changedField == &wellDiameter)
if (changedField == &m_perforationLength || changedField == &m_perforationEfficiency || changedField == &m_wellDiameter)
{
RimProject* proj;
this->firstAncestorOrThisOfType(proj);
@@ -153,23 +153,23 @@ void RimFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
{
if (fracture->fractureTemplate() == this)
{
if (changedField == &perforationLength && (fabs(oldValue.toDouble() - fracture->m_perforationLength()) < 1e-5))
if (changedField == &m_perforationLength && (fabs(oldValue.toDouble() - fracture->m_perforationLength()) < 1e-5))
{
fracture->m_perforationLength = perforationLength;
fracture->m_perforationLength = m_perforationLength;
}
if (changedField == &perforationEfficiency && (fabs(oldValue.toDouble() - fracture->m_perforationEfficiency()) < 1e-5))
if (changedField == &m_perforationEfficiency && (fabs(oldValue.toDouble() - fracture->m_perforationEfficiency()) < 1e-5))
{
fracture->m_perforationEfficiency = perforationEfficiency;
fracture->m_perforationEfficiency = m_perforationEfficiency;
}
if (changedField == &wellDiameter && (fabs(oldValue.toDouble() - fracture->m_wellDiameter()) < 1e-5))
if (changedField == &m_wellDiameter && (fabs(oldValue.toDouble() - fracture->m_wellDiameter()) < 1e-5))
{
fracture->m_wellDiameter = wellDiameter;
fracture->m_wellDiameter = m_wellDiameter;
}
}
}
}
if (changedField == &perforationLength)
if (changedField == &m_perforationLength)
{
RimProject* proj;
this->firstAncestorOrThisOfType(proj);
@@ -188,43 +188,43 @@ void RimFractureTemplate::defineUiOrdering(QString uiConfigName, caf::PdmUiOrder
if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_METRIC)
{
wellDiameter.uiCapability()->setUiName("Well Diameter [m]");
perforationLength.uiCapability()->setUiName("Perforation Length [m]");
m_wellDiameter.uiCapability()->setUiName("Well Diameter [m]");
m_perforationLength.uiCapability()->setUiName("Perforation Length [m]");
}
else if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_FIELD)
{
wellDiameter.uiCapability()->setUiName("Well Diameter [inches]");
perforationLength.uiCapability()->setUiName("Perforation Length [Ft]");
m_wellDiameter.uiCapability()->setUiName("Well Diameter [inches]");
m_perforationLength.uiCapability()->setUiName("Perforation Length [Ft]");
}
if (orientationType == RimFractureTemplate::ALONG_WELL_PATH
|| orientationType == RimFractureTemplate::TRANSVERSE_WELL_PATH)
{
azimuthAngle.uiCapability()->setUiHidden(true);
m_azimuthAngle.uiCapability()->setUiHidden(true);
}
else if (orientationType == RimFractureTemplate::AZIMUTH)
{
azimuthAngle.uiCapability()->setUiHidden(false);
m_azimuthAngle.uiCapability()->setUiHidden(false);
}
if (orientationType == RimFractureTemplate::ALONG_WELL_PATH)
{
perforationEfficiency.uiCapability()->setUiHidden(false);
perforationLength.uiCapability()->setUiHidden(false);
m_perforationEfficiency.uiCapability()->setUiHidden(false);
m_perforationLength.uiCapability()->setUiHidden(false);
}
else
{
perforationEfficiency.uiCapability()->setUiHidden(true);
perforationLength.uiCapability()->setUiHidden(true);
m_perforationEfficiency.uiCapability()->setUiHidden(true);
m_perforationLength.uiCapability()->setUiHidden(true);
}
if (conductivityType == FINITE_CONDUCTIVITY)
if (m_conductivityType == FINITE_CONDUCTIVITY)
{
wellDiameter.uiCapability()->setUiHidden(false);
m_wellDiameter.uiCapability()->setUiHidden(false);
}
else if (conductivityType == INFINITE_CONDUCTIVITY)
else if (m_conductivityType == INFINITE_CONDUCTIVITY)
{
wellDiameter.uiCapability()->setUiHidden(true);
m_wellDiameter.uiCapability()->setUiHidden(true);
}
}
@@ -234,7 +234,7 @@ void RimFractureTemplate::defineUiOrdering(QString uiConfigName, caf::PdmUiOrder
//--------------------------------------------------------------------------------------------------
void RimFractureTemplate::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute)
{
if (field == &perforationEfficiency)
if (field == &m_perforationEfficiency)
{
auto myAttr = dynamic_cast<caf::PdmUiDoubleSliderEditorAttribute*>(attribute);
if (myAttr)
@@ -253,17 +253,17 @@ double RimFractureTemplate::wellDiameterInFractureUnit(RiaEclipseUnitTools::Unit
{
if (fractureUnit == fractureTemplateUnit())
{
return wellDiameter;
return m_wellDiameter;
}
else if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_METRIC
&& fractureUnit == RiaEclipseUnitTools::UNITS_FIELD)
{
return RiaEclipseUnitTools::meterToInch(wellDiameter);
return RiaEclipseUnitTools::meterToInch(m_wellDiameter);
}
else if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_FIELD
&& fractureUnit == RiaEclipseUnitTools::UNITS_METRIC)
{
return RiaEclipseUnitTools::inchToMeter(wellDiameter);
return RiaEclipseUnitTools::inchToMeter(m_wellDiameter);
}
return cvf::UNDEFINED_DOUBLE;
@@ -276,17 +276,17 @@ double RimFractureTemplate::perforationLengthInFractureUnit(RiaEclipseUnitTools:
{
if (fractureUnit == fractureTemplateUnit())
{
return perforationLength;
return m_perforationLength;
}
else if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_METRIC
&& fractureUnit == RiaEclipseUnitTools::UNITS_FIELD)
{
return RiaEclipseUnitTools::meterToFeet(perforationLength);
return RiaEclipseUnitTools::meterToFeet(m_perforationLength);
}
else if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_FIELD
&& fractureUnit == RiaEclipseUnitTools::UNITS_METRIC)
{
return RiaEclipseUnitTools::feetToMeter(perforationLength);
return RiaEclipseUnitTools::feetToMeter(m_perforationLength);
}
return cvf::UNDEFINED_DOUBLE;
@@ -300,6 +300,30 @@ const RimFractureContainment * RimFractureTemplate::fractureContainment()
return m_fractureContainment();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimFractureTemplate::FracConductivityEnum RimFractureTemplate::conductivityType() const
{
return m_conductivityType();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
float RimFractureTemplate::azimuthAngle() const
{
return m_azimuthAngle;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
float RimFractureTemplate::skinFactor() const
{
return m_skinFactor;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -307,10 +331,10 @@ void RimFractureTemplate::setDefaultWellDiameterFromUnit()
{
if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_FIELD)
{
wellDiameter = 8.5;
m_wellDiameter = 8.5;
}
else if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_METRIC)
{
wellDiameter = 0.216;
m_wellDiameter = 0.216;
}
}

View File

@@ -47,61 +47,62 @@ class RimFractureTemplate : public caf::PdmObject
CAF_PDM_HEADER_INIT;
public:
RimFractureTemplate();
virtual ~RimFractureTemplate();
caf::PdmField<QString> name;
caf::PdmField<float> azimuthAngle;
caf::PdmField<float> skinFactor;
caf::PdmField<double> perforationLength;
caf::PdmField<double> perforationEfficiency;
caf::PdmField<double> wellDiameter;
enum FracOrientationEnum
{
AZIMUTH,
ALONG_WELL_PATH,
TRANSVERSE_WELL_PATH
};
caf::PdmField< caf::AppEnum< FracOrientationEnum > > orientationType;
enum FracConductivityEnum
{
INFINITE_CONDUCTIVITY,
FINITE_CONDUCTIVITY,
};
caf::PdmField< caf::AppEnum< FracConductivityEnum > > conductivityType;
caf::PdmField< RiaEclipseUnitTools::UnitSystemType > fractureTemplateUnit;
public:
RimFractureTemplate();
virtual ~RimFractureTemplate();
caf::PdmField<QString> name;
caf::PdmField<caf::AppEnum<FracOrientationEnum>> orientationType;
caf::PdmField<RiaEclipseUnitTools::UnitSystemType> fractureTemplateUnit;
FracConductivityEnum conductivityType() const;
float azimuthAngle() const;
float skinFactor() const;
void setDefaultWellDiameterFromUnit();
double wellDiameterInFractureUnit(RiaEclipseUnitTools::UnitSystemType fractureUnit);
double perforationLengthInFractureUnit(RiaEclipseUnitTools::UnitSystemType fractureUnit);
virtual void fractureTriangleGeometry(std::vector<cvf::Vec3f>* nodeCoords,
std::vector<cvf::uint>* triangleIndices,
virtual void fractureTriangleGeometry(std::vector<cvf::Vec3f>* nodeCoords,
std::vector<cvf::uint>* triangleIndices,
RiaEclipseUnitTools::UnitSystem neededUnit) = 0;
virtual std::vector<cvf::Vec3f> fractureBorderPolygon(RiaEclipseUnitTools::UnitSystem neededUnit) = 0;
virtual const RigFractureGrid* fractureGrid() const = 0;
virtual std::vector<cvf::Vec3f> fractureBorderPolygon(RiaEclipseUnitTools::UnitSystem neededUnit) = 0;
virtual const RigFractureGrid* fractureGrid() const = 0;
const RimFractureContainment* fractureContainment();
const RimFractureContainment * fractureContainment();
virtual void appendDataToResultStatistics(const QString& resultName, const QString& unit,
MinMaxAccumulator& minMaxAccumulator,
PosNegAccumulator& posNegAccumulator) const = 0;
virtual std::vector<std::pair<QString, QString> > uiResultNamesWithUnit() const = 0;
virtual void appendDataToResultStatistics(const QString& resultName,
const QString& unit,
MinMaxAccumulator& minMaxAccumulator,
PosNegAccumulator& posNegAccumulator) const = 0;
virtual std::vector<std::pair<QString, QString>> uiResultNamesWithUnit() const = 0;
protected:
caf::PdmChildField<RimFractureContainment*> m_fractureContainment;
virtual caf::PdmFieldHandle* userDescriptionField() override;
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
protected:
caf::PdmField<double> m_wellDiameter;
caf::PdmField<double> m_perforationLength;
caf::PdmField<double> m_perforationEfficiency;
caf::PdmField<float> m_skinFactor;
caf::PdmField<float> m_azimuthAngle;
caf::PdmChildField<RimFractureContainment*> m_fractureContainment;
caf::PdmField<caf::AppEnum<FracConductivityEnum>> m_conductivityType;
};

View File

@@ -363,17 +363,17 @@ void RimStimPlanFractureTemplate::setPerforationLength()
if (firstTvd != HUGE_VAL && lastTvd != HUGE_VAL)
{
perforationLength = std::round(cvf::Math::abs(firstTvd - lastTvd));
m_perforationLength = std::round(cvf::Math::abs(firstTvd - lastTvd));
}
}
if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_METRIC && perforationLength < 10)
if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_METRIC && m_perforationLength < 10)
{
perforationLength = 10;
m_perforationLength = 10;
}
else if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_FIELD && perforationLength < RiaEclipseUnitTools::meterToFeet(10))
else if (fractureTemplateUnit == RiaEclipseUnitTools::UNITS_FIELD && m_perforationLength < RiaEclipseUnitTools::meterToFeet(10))
{
perforationLength = std::round(RiaEclipseUnitTools::meterToFeet(10));
m_perforationLength = std::round(RiaEclipseUnitTools::meterToFeet(10));
}
}
@@ -640,7 +640,7 @@ void RimStimPlanFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pd
caf::PdmUiGroup* geometryGroup = uiOrdering.addNewGroup("Geometry");
geometryGroup->add(&orientationType);
geometryGroup->add(&azimuthAngle);
geometryGroup->add(&m_azimuthAngle);
caf::PdmUiGroup* trGr = uiOrdering.addNewGroup("Fracture Truncation");
m_fractureContainment()->defineUiOrdering(uiConfigName, *trGr);
@@ -648,11 +648,11 @@ void RimStimPlanFractureTemplate::defineUiOrdering(QString uiConfigName, caf::Pd
caf::PdmUiGroup* propertyGroup = uiOrdering.addNewGroup("Properties");
propertyGroup->add(&m_conductivityResultNameOnFile);
propertyGroup->add(&m_conductivityScalingFactor);
propertyGroup->add(&conductivityType);
propertyGroup->add(&skinFactor);
propertyGroup->add(&perforationLength);
propertyGroup->add(&perforationEfficiency);
propertyGroup->add(&wellDiameter);
propertyGroup->add(&m_conductivityType);
propertyGroup->add(&m_skinFactor);
propertyGroup->add(&m_perforationLength);
propertyGroup->add(&m_perforationEfficiency);
propertyGroup->add(&m_wellDiameter);
}
//--------------------------------------------------------------------------------------------------