#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
//
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// 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.
//
/////////////////////////////////////////////////////////////////////////////////
@ -23,17 +23,18 @@
#include <limits>
namespace caf {
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_USER_DEFINED, "UserDefined", "User Defined D-factor");
namespace caf
{
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_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");
@ -45,31 +46,71 @@ RimNonDarcyPerforationParameters::RimNonDarcyPerforationParameters()
CAF_PDM_InitObject("NonDarcyPerforationParameters", ":/CompletionsSymbol16x16.png", "", "");
CAF_PDM_InitFieldNoDefault(&m_nonDarcyFlowType, "NonDarcyFlowType", "Non-Darcy Flow", "", "", "");
CAF_PDM_InitField(&m_userDefinedDFactor, "UserDefinedDFactor", 1.0, "D Factor", "", "", "");
CAF_PDM_InitField(&m_unitConstant, "UnitConstant", 1.0, "<html> Unit Constant (&alpha;)</html>", "",
"<html>Unit:[cP*Day*m<sup>2</sup>/(Forch*mD*Sm<sup>3</sup>)]</html>", "");
CAF_PDM_InitField(&m_inertialCoefficient, "InertialCoefficient", 0.006083236, "<html>Inertial Coefficient (&beta;)</html> [Forch. unit]", "", "", "");
CAF_PDM_InitField(&m_effectivePermeability, "EffectivePermeability", 0.0, "<html>Effective Permeability (K<sub>e</sub>) [mD]</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_unitConstant,
"UnitConstant",
1.0,
"<html> Unit Constant (&alpha;)</html>",
"",
"<html>Unit:[cP*Day*m<sup>2</sup>/(Forch*mD*Sm<sup>3</sup>)]</html>",
"");
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)", "", "", "");
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimNonDarcyPerforationParameters::~RimNonDarcyPerforationParameters()
{
}
RimNonDarcyPerforationParameters::~RimNonDarcyPerforationParameters() {}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
RimNonDarcyPerforationParameters::NonDarcyFlowEnum RimNonDarcyPerforationParameters::nonDarcyFlowType() const
{
@ -77,7 +118,7 @@ RimNonDarcyPerforationParameters::NonDarcyFlowEnum RimNonDarcyPerforationParamet
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::userDefinedDFactor() const
{
@ -85,7 +126,7 @@ double RimNonDarcyPerforationParameters::userDefinedDFactor() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::unitConstant() const
{
@ -93,7 +134,7 @@ double RimNonDarcyPerforationParameters::unitConstant() 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
{
@ -117,7 +158,7 @@ double RimNonDarcyPerforationParameters::wellRadius() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::relativeGasDensity() const
{
@ -125,7 +166,7 @@ double RimNonDarcyPerforationParameters::relativeGasDensity() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::gasViscosity() const
{
@ -133,7 +174,7 @@ double RimNonDarcyPerforationParameters::gasViscosity() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::inertialCoefficientBeta0() const
{
@ -141,7 +182,7 @@ double RimNonDarcyPerforationParameters::inertialCoefficientBeta0() const
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
double RimNonDarcyPerforationParameters::permeabilityScalingFactor() const
{
@ -149,7 +190,7 @@ double RimNonDarcyPerforationParameters::permeabilityScalingFactor() 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)
{
@ -185,7 +228,7 @@ void RimNonDarcyPerforationParameters::defineUiOrdering(QString uiConfigName, ca
auto group = nonDarcyFlowGroup->addNewGroup("Parameters");
group->add(&m_unitConstant);
group->add(&m_inertialCoefficient);
group->add(&m_effectivePermeability);
group->add(&m_gridPermeabilityScalingFactor);
group->add(&m_wellRadius);
group->add(&m_relativeGasDensity);
group->add(&m_gasViscosity);

View File

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