#6938 Use unscaled porosity for elastic property lookup.

The elastic properties are already scaled by net-to-gross. Scaling the porosity
by net-to-gross before looking up the properties was applying the scaling twice.

Closes #6938.
This commit is contained in:
Kristian Bendiksen
2020-11-06 13:45:45 +01:00
parent bd2678fe57
commit 5c99872c7f
6 changed files with 13 additions and 6 deletions

View File

@@ -52,6 +52,7 @@ void AppEnum<RiaDefines::CurveProperty>::setUp()
"Thermal Expansion Coefficient" );
addItem( RiaDefines::CurveProperty::IMMOBILE_FLUID_SATURATION, "IMMOBILE_FLUID_SATURATION", "Immobile Fluid Saturation" );
addItem( RiaDefines::CurveProperty::NET_TO_GROSS, "NET_TO_GROSS", "Net-To-Gross" );
addItem( RiaDefines::CurveProperty::POROSITY_UNSCALED, "POROSITY_UNSCALED", "Porosity (Unscaled)" );
setDefault( RiaDefines::CurveProperty::UNDEFINED );
}

View File

@@ -51,5 +51,6 @@ enum class CurveProperty
THERMAL_EXPANSION_COEFFICIENT,
IMMOBILE_FLUID_SATURATION,
NET_TO_GROSS,
POROSITY_UNSCALED,
};
}; // namespace RiaDefines

View File

@@ -94,7 +94,7 @@ RimStimPlanModelPlot* RicNewStimPlanModelPlotFeature::createPlot( RimStimPlanMod
auto task = progInfo.task( "Creating parameters track", 15 );
std::map<QString, std::vector<RiaDefines::CurveProperty>> plots;
plots["Porosity"] = { RiaDefines::CurveProperty::POROSITY };
plots["Porosity"] = { RiaDefines::CurveProperty::POROSITY, RiaDefines::CurveProperty::POROSITY_UNSCALED };
plots["Pressure"] = { RiaDefines::CurveProperty::INITIAL_PRESSURE, RiaDefines::CurveProperty::PRESSURE };
plots["Permeability"] = { RiaDefines::CurveProperty::PERMEABILITY_X, RiaDefines::CurveProperty::PERMEABILITY_Z };
plots["Net-To-Gross"] = { RiaDefines::CurveProperty::NET_TO_GROSS };

View File

@@ -1036,7 +1036,8 @@ double RimStimPlanModel::defaultPermeability() const
//--------------------------------------------------------------------------------------------------
double RimStimPlanModel::getDefaultForMissingValue( RiaDefines::CurveProperty curveProperty ) const
{
if ( curveProperty == RiaDefines::CurveProperty::POROSITY )
if ( curveProperty == RiaDefines::CurveProperty::POROSITY ||
curveProperty == RiaDefines::CurveProperty::POROSITY_UNSCALED )
{
return defaultPorosity();
}
@@ -1075,7 +1076,8 @@ RiaDefines::CurveProperty RimStimPlanModel::getDefaultPropertyForMissingValues(
//--------------------------------------------------------------------------------------------------
double RimStimPlanModel::getDefaultForMissingOverburdenValue( RiaDefines::CurveProperty curveProperty ) const
{
if ( curveProperty == RiaDefines::CurveProperty::POROSITY )
if ( curveProperty == RiaDefines::CurveProperty::POROSITY ||
curveProperty == RiaDefines::CurveProperty::POROSITY_UNSCALED )
{
return defaultOverburdenPorosity();
}
@@ -1107,7 +1109,8 @@ double RimStimPlanModel::getDefaultForMissingOverburdenValue( RiaDefines::CurveP
//--------------------------------------------------------------------------------------------------
double RimStimPlanModel::getDefaultForMissingUnderburdenValue( RiaDefines::CurveProperty curveProperty ) const
{
if ( curveProperty == RiaDefines::CurveProperty::POROSITY )
if ( curveProperty == RiaDefines::CurveProperty::POROSITY ||
curveProperty == RiaDefines::CurveProperty::POROSITY_UNSCALED )
{
return defaultUnderburdenPorosity();
}
@@ -1654,7 +1657,8 @@ QString RimStimPlanModel::eclipseResultVariable( RiaDefines::CurveProperty curve
return "PERMX";
else if ( curveProperty == RiaDefines::CurveProperty::PERMEABILITY_Z )
return "PERMZ";
else if ( curveProperty == RiaDefines::CurveProperty::POROSITY )
else if ( curveProperty == RiaDefines::CurveProperty::POROSITY ||
curveProperty == RiaDefines::CurveProperty::POROSITY_UNSCALED )
return "PORO";
else if ( curveProperty == RiaDefines::CurveProperty::FACIES )
{

View File

@@ -177,7 +177,7 @@ bool RimStimPlanModelElasticPropertyCalculator::calculate( RiaDefines::CurveProp
}
std::vector<double> poroValues =
m_stimPlanModelCalculator->extractValues( RiaDefines::CurveProperty::POROSITY, timeStep );
m_stimPlanModelCalculator->extractValues( RiaDefines::CurveProperty::POROSITY_UNSCALED, timeStep );
double overburdenHeight = stimPlanModel->overburdenHeight();
if ( overburdenHeight > 0.0 )

View File

@@ -57,6 +57,7 @@ bool RimStimPlanModelWellLogCalculator::isMatching( RiaDefines::CurveProperty cu
std::vector<RiaDefines::CurveProperty> matching = {
RiaDefines::CurveProperty::FACIES,
RiaDefines::CurveProperty::POROSITY,
RiaDefines::CurveProperty::POROSITY_UNSCALED,
RiaDefines::CurveProperty::PERMEABILITY_X,
RiaDefines::CurveProperty::PERMEABILITY_Z,
RiaDefines::CurveProperty::INITIAL_PRESSURE,