#3412 Non-Darcy Perf intervals : Rename to gridPermeabilityScalingFactor

This commit is contained in:
Magne Sjaastad
2018-10-11 11:34:11 +02:00
parent 0174ee03e1
commit 0ea4922f19
2 changed files with 113 additions and 72 deletions

View File

@@ -1,17 +1,17 @@
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2018 Equinor ASA // Copyright (C) 2018 Equinor ASA
// //
// ResInsight is free software: you can redistribute it and/or modify // ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY // ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or // WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. // FITNESS FOR A PARTICULAR PURPOSE.
// //
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html> // See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details. // for more details.
// //
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
@@ -23,17 +23,18 @@
#include <limits> #include <limits>
namespace caf { namespace caf
template<> {
void caf::AppEnum<RimNonDarcyPerforationParameters::NonDarcyFlowEnum>::setUp() template<>
{ void caf::AppEnum<RimNonDarcyPerforationParameters::NonDarcyFlowEnum>::setUp()
addItem(RimNonDarcyPerforationParameters::NON_DARCY_NONE, "None", "None"); {
addItem(RimNonDarcyPerforationParameters::NON_DARCY_COMPUTED, "Computed", "Compute D-factor"); addItem(RimNonDarcyPerforationParameters::NON_DARCY_NONE, "None", "None");
addItem(RimNonDarcyPerforationParameters::NON_DARCY_USER_DEFINED, "UserDefined", "User Defined D-factor"); addItem(RimNonDarcyPerforationParameters::NON_DARCY_COMPUTED, "Computed", "Compute D-factor");
addItem(RimNonDarcyPerforationParameters::NON_DARCY_USER_DEFINED, "UserDefined", "User Defined D-factor");
setDefault(RimNonDarcyPerforationParameters::NON_DARCY_NONE); setDefault(RimNonDarcyPerforationParameters::NON_DARCY_NONE);
}
} }
} // namespace caf
CAF_PDM_SOURCE_INIT(RimNonDarcyPerforationParameters, "RimNonDarcyPerforationParameters"); CAF_PDM_SOURCE_INIT(RimNonDarcyPerforationParameters, "RimNonDarcyPerforationParameters");
@@ -45,31 +46,71 @@ RimNonDarcyPerforationParameters::RimNonDarcyPerforationParameters()
CAF_PDM_InitObject("NonDarcyPerforationParameters", ":/CompletionsSymbol16x16.png", "", ""); CAF_PDM_InitObject("NonDarcyPerforationParameters", ":/CompletionsSymbol16x16.png", "", "");
CAF_PDM_InitFieldNoDefault(&m_nonDarcyFlowType, "NonDarcyFlowType", "Non-Darcy Flow", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_nonDarcyFlowType, "NonDarcyFlowType", "Non-Darcy Flow", "", "", "");
CAF_PDM_InitField(&m_userDefinedDFactor, "UserDefinedDFactor", 1.0, "D Factor", "", "", ""); CAF_PDM_InitField(&m_userDefinedDFactor, "UserDefinedDFactor", 1.0, "D Factor", "", "", "");
CAF_PDM_InitField(&m_unitConstant, "UnitConstant", 1.0, "<html> Unit Constant (&alpha;)</html>", "", CAF_PDM_InitField(&m_unitConstant,
"<html>Unit:[cP*Day*m<sup>2</sup>/(Forch*mD*Sm<sup>3</sup>)]</html>", ""); "UnitConstant",
CAF_PDM_InitField(&m_inertialCoefficient, "InertialCoefficient", 0.006083236, "<html>Inertial Coefficient (&beta;)</html> [Forch. unit]", "", "", ""); 1.0,
CAF_PDM_InitField(&m_effectivePermeability, "EffectivePermeability", 0.0, "<html>Effective Permeability (K<sub>e</sub>) [mD]</html>", "", "", ""); "<html> Unit Constant (&alpha;)</html>",
CAF_PDM_InitField(&m_wellRadius, "WellRadius", 0.15, "<html>Well Radius (r<sub>w</sub>)</html> [m]", "", "", ""); "",
CAF_PDM_InitField(&m_relativeGasDensity, "RelativeGasDensity", 0.8, "<html>Relative Gas Density (&gamma;)</html>", "", "Relative density of gas at surface conditions with respect to air at STP", ""); "<html>Unit:[cP*Day*m<sup>2</sup>/(Forch*mD*Sm<sup>3</sup>)]</html>",
CAF_PDM_InitField(&m_gasViscosity, "GasViscosity", 0.02, "<html>Gas Viscosity (&mu;)</html> [cP]", "", "Gas viscosity at bottom hole pressure", ""); "");
CAF_PDM_InitField(&m_inertialCoefficient,
"InertialCoefficient",
0.006083236,
"<html>Inertial Coefficient (&beta;)</html> [Forch. unit]",
"",
"",
"");
CAF_PDM_InitField(&m_gridPermeabilityScalingFactor,
"GridPermeabilityScalingFactor",
0.0,
"<html>Grid Permeability Scaling Factor (K<sub>r</sub>) [0..1]</html>",
"",
"",
"");
CAF_PDM_InitField(&m_wellRadius, "WellRadius", 0.15, "<html>Well Radius (r<sub>w</sub>)</html> [m]", "", "", "");
CAF_PDM_InitField(&m_relativeGasDensity,
"RelativeGasDensity",
0.8,
"<html>Relative Gas Density (&gamma;)</html>",
"",
"Relative density of gas at surface conditions with respect to air at STP",
"");
CAF_PDM_InitField(&m_gasViscosity,
"GasViscosity",
0.02,
"<html>Gas Viscosity (&mu;)</html> [cP]",
"",
"Gas viscosity at bottom hole pressure",
"");
CAF_PDM_InitField(&m_inertialCoefficientBeta0,
"InertialCoefficientBeta0",
883.90,
"<html>Inertial Coefficient (&beta;<sub>0</sub>)</html> [Forch. unit]",
"",
"",
"");
CAF_PDM_InitField(
&m_permeabilityScalingFactor, "PermeabilityScalingFactor", -1.1045, "Permeability Scaling Factor (B)", "", "", "");
CAF_PDM_InitField(&m_inertialCoefficientBeta0, "InertialCoefficientBeta0", 883.90, "<html>Inertial Coefficient (&beta;<sub>0</sub>)</html> [Forch. unit]", "", "", "");
CAF_PDM_InitField(&m_permeabilityScalingFactor, "PermeabilityScalingFactor", -1.1045, "Permeability Scaling Factor (B)", "", "", "");
CAF_PDM_InitField(&m_porosityScalingFactor, "PorosityScalingFactor", 0.0, "Porosity Scaling Factor (C)", "", "", ""); CAF_PDM_InitField(&m_porosityScalingFactor, "PorosityScalingFactor", 0.0, "Porosity Scaling Factor (C)", "", "", "");
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimNonDarcyPerforationParameters::~RimNonDarcyPerforationParameters() RimNonDarcyPerforationParameters::~RimNonDarcyPerforationParameters() {}
{
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimNonDarcyPerforationParameters::NonDarcyFlowEnum RimNonDarcyPerforationParameters::nonDarcyFlowType() const RimNonDarcyPerforationParameters::NonDarcyFlowEnum RimNonDarcyPerforationParameters::nonDarcyFlowType() const
{ {
@@ -77,7 +118,7 @@ RimNonDarcyPerforationParameters::NonDarcyFlowEnum RimNonDarcyPerforationParamet
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::userDefinedDFactor() const double RimNonDarcyPerforationParameters::userDefinedDFactor() const
{ {
@@ -85,7 +126,7 @@ double RimNonDarcyPerforationParameters::userDefinedDFactor() const
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::unitConstant() const double RimNonDarcyPerforationParameters::unitConstant() const
{ {
@@ -93,7 +134,7 @@ double RimNonDarcyPerforationParameters::unitConstant() const
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::inertialCoefficient() const double RimNonDarcyPerforationParameters::inertialCoefficient() const
{ {
@@ -101,15 +142,15 @@ double RimNonDarcyPerforationParameters::inertialCoefficient() const
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::effectivePermeability() const double RimNonDarcyPerforationParameters::gridPermeabilityScalingFactor() const
{ {
return m_effectivePermeability; return m_gridPermeabilityScalingFactor;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::wellRadius() const double RimNonDarcyPerforationParameters::wellRadius() const
{ {
@@ -117,7 +158,7 @@ double RimNonDarcyPerforationParameters::wellRadius() const
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::relativeGasDensity() const double RimNonDarcyPerforationParameters::relativeGasDensity() const
{ {
@@ -125,7 +166,7 @@ double RimNonDarcyPerforationParameters::relativeGasDensity() const
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::gasViscosity() const double RimNonDarcyPerforationParameters::gasViscosity() const
{ {
@@ -133,7 +174,7 @@ double RimNonDarcyPerforationParameters::gasViscosity() const
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::inertialCoefficientBeta0() const double RimNonDarcyPerforationParameters::inertialCoefficientBeta0() const
{ {
@@ -141,7 +182,7 @@ double RimNonDarcyPerforationParameters::inertialCoefficientBeta0() const
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::permeabilityScalingFactor() const double RimNonDarcyPerforationParameters::permeabilityScalingFactor() const
{ {
@@ -149,7 +190,7 @@ double RimNonDarcyPerforationParameters::permeabilityScalingFactor() const
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::porosityScalingFactor() const double RimNonDarcyPerforationParameters::porosityScalingFactor() const
{ {
@@ -157,9 +198,11 @@ double RimNonDarcyPerforationParameters::porosityScalingFactor() const
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimNonDarcyPerforationParameters::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) void RimNonDarcyPerforationParameters::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
const QVariant& oldValue,
const QVariant& newValue)
{ {
if (changedField == &m_nonDarcyFlowType) if (changedField == &m_nonDarcyFlowType)
{ {
@@ -185,7 +228,7 @@ void RimNonDarcyPerforationParameters::defineUiOrdering(QString uiConfigName, ca
auto group = nonDarcyFlowGroup->addNewGroup("Parameters"); auto group = nonDarcyFlowGroup->addNewGroup("Parameters");
group->add(&m_unitConstant); group->add(&m_unitConstant);
group->add(&m_inertialCoefficient); group->add(&m_inertialCoefficient);
group->add(&m_effectivePermeability); group->add(&m_gridPermeabilityScalingFactor);
group->add(&m_wellRadius); group->add(&m_wellRadius);
group->add(&m_relativeGasDensity); group->add(&m_relativeGasDensity);
group->add(&m_gasViscosity); group->add(&m_gasViscosity);

View File

@@ -1,17 +1,17 @@
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2018 Equinor ASA // Copyright (C) 2018 Equinor ASA
// //
// ResInsight is free software: you can redistribute it and/or modify // ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY // ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or // WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. // FITNESS FOR A PARTICULAR PURPOSE.
// //
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html> // See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details. // for more details.
// //
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
@@ -38,36 +38,34 @@ public:
RimNonDarcyPerforationParameters(); RimNonDarcyPerforationParameters();
~RimNonDarcyPerforationParameters(); ~RimNonDarcyPerforationParameters();
NonDarcyFlowEnum nonDarcyFlowType() const; NonDarcyFlowEnum nonDarcyFlowType() const;
double userDefinedDFactor() const; double userDefinedDFactor() const;
double unitConstant() const; double unitConstant() const;
double inertialCoefficient() const; double inertialCoefficient() const;
double effectivePermeability() const; double gridPermeabilityScalingFactor() const;
double wellRadius() const; double wellRadius() const;
double relativeGasDensity() const; double relativeGasDensity() const;
double gasViscosity() const; double gasViscosity() const;
double inertialCoefficientBeta0() const; double inertialCoefficientBeta0() const;
double permeabilityScalingFactor() const; double permeabilityScalingFactor() const;
double porosityScalingFactor() const; double porosityScalingFactor() const;
protected: protected:
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
const QVariant& oldValue, void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
const QVariant& newValue);
void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
private: private:
caf::PdmField<caf::AppEnum<NonDarcyFlowEnum>> m_nonDarcyFlowType; caf::PdmField<caf::AppEnum<NonDarcyFlowEnum>> m_nonDarcyFlowType;
caf::PdmField<double> m_userDefinedDFactor; caf::PdmField<double> m_userDefinedDFactor;
caf::PdmField<double> m_unitConstant; caf::PdmField<double> m_unitConstant;
caf::PdmField<double> m_inertialCoefficient; caf::PdmField<double> m_inertialCoefficient;
caf::PdmField<double> m_effectivePermeability; caf::PdmField<double> m_gridPermeabilityScalingFactor;
caf::PdmField<double> m_wellRadius; caf::PdmField<double> m_wellRadius;
caf::PdmField<double> m_relativeGasDensity; caf::PdmField<double> m_relativeGasDensity;
caf::PdmField<double> m_gasViscosity; caf::PdmField<double> m_gasViscosity;
caf::PdmField<double> m_inertialCoefficientBeta0; caf::PdmField<double> m_inertialCoefficientBeta0;
caf::PdmField<double> m_permeabilityScalingFactor; caf::PdmField<double> m_permeabilityScalingFactor;
caf::PdmField<double> m_porosityScalingFactor; caf::PdmField<double> m_porosityScalingFactor;
}; };