#7400 StimPlanModel: Add EQLNUM result to calculator.

Take results from EQLNUM_1 input properties for missing values in
static eclipse case.
This commit is contained in:
Kristian Bendiksen 2021-02-22 12:16:36 +01:00 committed by Magne Sjaastad
parent 916cbb306f
commit f0c70a0fd2
5 changed files with 19 additions and 4 deletions

View File

@ -55,6 +55,7 @@ void AppEnum<RiaDefines::CurveProperty>::setUp()
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)" );
addItem( RiaDefines::CurveProperty::EQLNUM, "EQLNUM", "Equilibration Number" );
setDefault( RiaDefines::CurveProperty::UNDEFINED );
}

View File

@ -50,6 +50,7 @@ enum class CurveProperty
IMMOBILE_FLUID_SATURATION,
NET_TO_GROSS,
POROSITY_UNSCALED,
EQLNUM,
};
double defaultPorosity();

View File

@ -98,6 +98,7 @@ RimStimPlanModelPlot* RicNewStimPlanModelPlotFeature::createPlot( RimStimPlanMod
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 };
plots["EQLNUM"] = { RiaDefines::CurveProperty::EQLNUM };
std::set<QString> logarithmicPlots;
logarithmicPlots.insert( "Permeability" );
@ -361,7 +362,8 @@ void RicNewStimPlanModelPlotFeature::createParametersTrack( RimStimPlanModelPlot
QString resultVariable = stimPlanModel->eclipseResultVariable( propertyType );
RiaDefines::ResultCatType resultCategoryType = stimPlanModel->eclipseResultCategory( propertyType );
// TODO: maybe improve?
bool fixedInitialTimeStep = ( propertyType == RiaDefines::CurveProperty::INITIAL_PRESSURE );
bool fixedInitialTimeStep = ( propertyType == RiaDefines::CurveProperty::INITIAL_PRESSURE ||
resultCategoryType == RiaDefines::ResultCatType::STATIC_NATIVE );
RimStimPlanModelCurve* curve = new RimStimPlanModelCurve;
curve->setCurveProperty( propertyType );

View File

@ -78,6 +78,7 @@
#include "cvfPlane.h"
#include <cmath>
#include <limits>
CAF_PDM_SOURCE_INIT( RimStimPlanModel, "StimPlanModel" );
@ -1156,6 +1157,10 @@ double RimStimPlanModel::getDefaultForMissingValue( RiaDefines::CurveProperty cu
{
return 1.0;
}
else if ( curveProperty == RiaDefines::CurveProperty::EQLNUM )
{
return std::numeric_limits<double>::infinity();
}
else
{
RiaLogging::error( QString( "Missing default value for %1." )
@ -1202,7 +1207,7 @@ double RimStimPlanModel::getDefaultForMissingOverburdenValue( RiaDefines::CurveP
{
return 1.0;
}
else if ( curveProperty == RiaDefines::CurveProperty::PRESSURE )
else if ( curveProperty == RiaDefines::CurveProperty::PRESSURE || curveProperty == RiaDefines::CurveProperty::EQLNUM )
{
return std::numeric_limits<double>::infinity();
}
@ -1239,7 +1244,7 @@ double RimStimPlanModel::getDefaultForMissingUnderburdenValue( RiaDefines::Curve
{
return 1.0;
}
else if ( curveProperty == RiaDefines::CurveProperty::PRESSURE )
else if ( curveProperty == RiaDefines::CurveProperty::PRESSURE || curveProperty == RiaDefines::CurveProperty::EQLNUM )
{
return std::numeric_limits<double>::infinity();
}
@ -1551,6 +1556,7 @@ bool RimStimPlanModel::useStaticEclipseCase( RiaDefines::CurveProperty curveProp
RiaDefines::CurveProperty::PERMEABILITY_Z,
RiaDefines::CurveProperty::FACIES,
RiaDefines::CurveProperty::NET_TO_GROSS,
RiaDefines::CurveProperty::EQLNUM,
};
return std::find( matching.begin(), matching.end(), curveProperty ) != matching.end();
@ -1814,6 +1820,8 @@ QString RimStimPlanModel::eclipseResultVariable( RiaDefines::CurveProperty curve
if ( curveProperty == RiaDefines::CurveProperty::PRESSURE ||
curveProperty == RiaDefines::CurveProperty::INITIAL_PRESSURE )
return "PRESSURE";
else if ( curveProperty == RiaDefines::CurveProperty::EQLNUM )
return "EQLNUM";
else if ( curveProperty == RiaDefines::CurveProperty::PERMEABILITY_X )
return "PERMX";
else if ( curveProperty == RiaDefines::CurveProperty::PERMEABILITY_Z )

View File

@ -61,6 +61,7 @@ bool RimStimPlanModelWellLogCalculator::isMatching( RiaDefines::CurveProperty cu
RiaDefines::CurveProperty::PERMEABILITY_X,
RiaDefines::CurveProperty::PERMEABILITY_Z,
RiaDefines::CurveProperty::NET_TO_GROSS,
RiaDefines::CurveProperty::EQLNUM,
};
return std::find( matching.begin(), matching.end(), curveProperty ) != matching.end();
@ -100,7 +101,9 @@ bool RimStimPlanModelWellLogCalculator::calculate( RiaDefines::CurveProperty cur
if ( stimPlanModel->missingValueStrategy( curveProperty ) == RimStimPlanModel::MissingValueStrategy::DEFAULT_VALUE )
{
if ( !replaceMissingValuesWithDefault( curveProperty, stimPlanModel, timeStep, resultVariable, values ) )
// Input properties must use first time step
int replacementTimeStep = 0;
if ( !replaceMissingValuesWithDefault( curveProperty, stimPlanModel, replacementTimeStep, resultVariable, values ) )
{
return false;
}