diff --git a/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.cpp b/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.cpp index 3ad5c59d7c..08ad0da8a9 100644 --- a/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.cpp +++ b/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.cpp @@ -105,11 +105,7 @@ bool RimStimPlanModelWellLogCalculator::calculate( RiaDefines::CurveProperty cur if ( strategy == RimStimPlanModel::MissingValueStrategy::DEFAULT_VALUE ) { - QString resultVariable = stimPlanModel->eclipseResultVariable( curveProperty ); - - // Input properties must use first time step - int replacementTimeStep = 0; - if ( !replaceMissingValuesWithDefault( curveProperty, stimPlanModel, replacementTimeStep, resultVariable, values ) ) + if ( !replaceMissingValuesWithDefault( curveProperty, stimPlanModel, values ) ) { return false; } @@ -120,24 +116,10 @@ bool RimStimPlanModelWellLogCalculator::calculate( RiaDefines::CurveProperty cur } else if ( strategy == RimStimPlanModel::MissingValueStrategy::OTHER_CURVE_PROPERTY ) { - // Get the missing data from other curve - RiaDefines::CurveProperty replacementProperty = - stimPlanModel->getDefaultPropertyForMissingValues( curveProperty ); - - std::vector initialValues; - std::vector initialMds; - std::vector initialTvds; - double initialRkbDiff = -1.0; - calculate( replacementProperty, stimPlanModel, timeStep, initialValues, initialMds, initialTvds, initialRkbDiff ); - - if ( initialValues.empty() ) + if ( !replaceMissingValuesWithOtherProperty( curveProperty, stimPlanModel, timeStep, values ) ) { - RiaLogging::error( QString( "Empty replacement data found for fracture model curve." ) ); return false; } - - CVF_ASSERT( values.size() == initialValues.size() ); - replaceMissingValues( values, initialValues ); } } @@ -427,8 +409,6 @@ bool RimStimPlanModelWellLogCalculator::extractValuesForProperty( RiaDefines::Cu //-------------------------------------------------------------------------------------------------- bool RimStimPlanModelWellLogCalculator::replaceMissingValuesWithDefault( RiaDefines::CurveProperty curveProperty, const RimStimPlanModel* stimPlanModel, - int timeStep, - const QString& resultVariable, std::vector& values ) const { @@ -446,11 +426,16 @@ bool RimStimPlanModelWellLogCalculator::replaceMissingValuesWithDefault( RiaDefi return false; } + // Input properties must use first time step + int replacementTimeStep = 0; + + QString resultVariable = stimPlanModel->eclipseResultVariable( curveProperty ); + // Try to locate a backup accessor (e.g. PORO_1 for PORO) cvf::ref backupResAcc = findMissingValuesAccessor( eclipseCase->eclipseCaseData(), eclipseCase->inputPropertyCollection(), 0, - timeStep, + replacementTimeStep, resultVariable ); if ( backupResAcc.notNull() ) @@ -500,3 +485,28 @@ bool RimStimPlanModelWellLogCalculator::replaceMissingValuesWithDefault( RiaDefi return true; } + +bool RimStimPlanModelWellLogCalculator::replaceMissingValuesWithOtherProperty( RiaDefines::CurveProperty curveProperty, + const RimStimPlanModel* stimPlanModel, + int timeStep, + std::vector& values ) const +{ + // Get the missing data from other curve + RiaDefines::CurveProperty replacementProperty = stimPlanModel->getDefaultPropertyForMissingValues( curveProperty ); + + std::vector initialValues; + std::vector initialMds; + std::vector initialTvds; + double initialRkbDiff = -1.0; + calculate( replacementProperty, stimPlanModel, timeStep, initialValues, initialMds, initialTvds, initialRkbDiff ); + + if ( initialValues.empty() ) + { + RiaLogging::error( QString( "Empty replacement data found for fracture model curve." ) ); + return false; + } + + CVF_ASSERT( values.size() == initialValues.size() ); + replaceMissingValues( values, initialValues ); + return true; +} diff --git a/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.h b/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.h index 01ffbdb265..d3e018b035 100644 --- a/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.h +++ b/ApplicationLibCode/ProjectDataModel/StimPlanModel/RimStimPlanModelWellLogCalculator.h @@ -82,9 +82,12 @@ protected: bool replaceMissingValuesWithDefault( RiaDefines::CurveProperty curveProperty, const RimStimPlanModel* stimPlanModel, - int timeStep, - const QString& resultVariable, std::vector& values ) const; + bool replaceMissingValuesWithOtherProperty( RiaDefines::CurveProperty curveProperty, + const RimStimPlanModel* stimPlanModel, + int timeStep, + std::vector& values ) const; + RimStimPlanModelCalculator* m_stimPlanModelCalculator; };