diff --git a/ApplicationLibCode/Application/RiaStimPlanModelDefines.cpp b/ApplicationLibCode/Application/RiaStimPlanModelDefines.cpp index 7fa4aad14c..3709c79c96 100644 --- a/ApplicationLibCode/Application/RiaStimPlanModelDefines.cpp +++ b/ApplicationLibCode/Application/RiaStimPlanModelDefines.cpp @@ -55,6 +55,7 @@ void AppEnum::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 ); } diff --git a/ApplicationLibCode/Application/RiaStimPlanModelDefines.h b/ApplicationLibCode/Application/RiaStimPlanModelDefines.h index cb785430ba..df94ebbdf8 100644 --- a/ApplicationLibCode/Application/RiaStimPlanModelDefines.h +++ b/ApplicationLibCode/Application/RiaStimPlanModelDefines.h @@ -50,6 +50,7 @@ enum class CurveProperty IMMOBILE_FLUID_SATURATION, NET_TO_GROSS, POROSITY_UNSCALED, + EQLNUM, }; double defaultPorosity(); diff --git a/ApplicationLibCode/Commands/CompletionCommands/RicNewStimPlanModelPlotFeature.cpp b/ApplicationLibCode/Commands/CompletionCommands/RicNewStimPlanModelPlotFeature.cpp index c3c6cf0032..904105e80d 100644 --- a/ApplicationLibCode/Commands/CompletionCommands/RicNewStimPlanModelPlotFeature.cpp +++ b/ApplicationLibCode/Commands/CompletionCommands/RicNewStimPlanModelPlotFeature.cpp @@ -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 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 ); diff --git a/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModel.cpp b/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModel.cpp index 49dfbcd127..4218b00df7 100644 --- a/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModel.cpp +++ b/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModel.cpp @@ -78,6 +78,7 @@ #include "cvfPlane.h" #include +#include 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::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::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::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 ) diff --git a/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.cpp b/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.cpp index c3138e08f7..2690cce066 100644 --- a/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.cpp +++ b/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.cpp @@ -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; }