mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#7871 StimPlan Model: Add data source ordering for EQLNUM extraction
This commit is contained in:
parent
966bcd1e77
commit
b69665ce23
@ -23,6 +23,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RimNonNetLayers.h
|
|||||||
${CMAKE_CURRENT_LIST_DIR}/RimFaciesInitialPressureConfig.h
|
${CMAKE_CURRENT_LIST_DIR}/RimFaciesInitialPressureConfig.h
|
||||||
${CMAKE_CURRENT_LIST_DIR}/RimPressureTableItem.h
|
${CMAKE_CURRENT_LIST_DIR}/RimPressureTableItem.h
|
||||||
${CMAKE_CURRENT_LIST_DIR}/RimPressureTable.h
|
${CMAKE_CURRENT_LIST_DIR}/RimPressureTable.h
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/RimExtractionConfiguration.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set (SOURCE_GROUP_SOURCE_FILES
|
set (SOURCE_GROUP_SOURCE_FILES
|
||||||
@ -47,6 +48,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RimNonNetLayers.cpp
|
|||||||
${CMAKE_CURRENT_LIST_DIR}/RimFaciesInitialPressureConfig.cpp
|
${CMAKE_CURRENT_LIST_DIR}/RimFaciesInitialPressureConfig.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/RimPressureTableItem.cpp
|
${CMAKE_CURRENT_LIST_DIR}/RimPressureTableItem.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/RimPressureTable.cpp
|
${CMAKE_CURRENT_LIST_DIR}/RimPressureTable.cpp
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/RimExtractionConfiguration.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND CODE_HEADER_FILES
|
list(APPEND CODE_HEADER_FILES
|
||||||
|
@ -0,0 +1,48 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) 2021- 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>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "RimExtractionConfiguration.h"
|
||||||
|
|
||||||
|
#include "cafAppEnum.h"
|
||||||
|
|
||||||
|
namespace caf
|
||||||
|
{
|
||||||
|
template <>
|
||||||
|
void caf::AppEnum<RimExtractionConfiguration::EclipseCaseType>::setUp()
|
||||||
|
{
|
||||||
|
addItem( RimExtractionConfiguration::EclipseCaseType::STATIC_CASE, "STATIC_CASE", "Static Case" );
|
||||||
|
addItem( RimExtractionConfiguration::EclipseCaseType::DYNAMIC_CASE, "DYNAMIC_CASE", "Dynamic Case" );
|
||||||
|
addItem( RimExtractionConfiguration::EclipseCaseType::INITIAL_PRESSURE_CASE,
|
||||||
|
"INITIAL_PRESSURE_CASE",
|
||||||
|
"Initial Pressure Case" );
|
||||||
|
|
||||||
|
setDefault( RimExtractionConfiguration::EclipseCaseType::STATIC_CASE );
|
||||||
|
}
|
||||||
|
}; // namespace caf
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimExtractionConfiguration::RimExtractionConfiguration( const QString& resultVar,
|
||||||
|
RiaDefines::ResultCatType resultCat,
|
||||||
|
EclipseCaseType eclipseCase )
|
||||||
|
{
|
||||||
|
resultVariable = resultVar;
|
||||||
|
resultCategory = resultCat;
|
||||||
|
eclipseCaseType = eclipseCase;
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) 2021- 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>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "RiaDefines.h"
|
||||||
|
|
||||||
|
class RimExtractionConfiguration
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
enum class EclipseCaseType
|
||||||
|
{
|
||||||
|
STATIC_CASE,
|
||||||
|
DYNAMIC_CASE,
|
||||||
|
INITIAL_PRESSURE_CASE
|
||||||
|
};
|
||||||
|
|
||||||
|
RimExtractionConfiguration( const QString& resultVar, RiaDefines::ResultCatType resultCat, EclipseCaseType eclipseCase );
|
||||||
|
|
||||||
|
RiaDefines::ResultCatType resultCategory;
|
||||||
|
QString resultVariable;
|
||||||
|
EclipseCaseType eclipseCaseType;
|
||||||
|
};
|
@ -40,6 +40,7 @@
|
|||||||
#include "RimEclipseCase.h"
|
#include "RimEclipseCase.h"
|
||||||
#include "RimEclipseResultDefinition.h"
|
#include "RimEclipseResultDefinition.h"
|
||||||
#include "RimEclipseView.h"
|
#include "RimEclipseView.h"
|
||||||
|
#include "RimExtractionConfiguration.h"
|
||||||
#include "RimFaciesProperties.h"
|
#include "RimFaciesProperties.h"
|
||||||
#include "RimFaultInView.h"
|
#include "RimFaultInView.h"
|
||||||
#include "RimFaultInViewCollection.h"
|
#include "RimFaultInViewCollection.h"
|
||||||
@ -1710,3 +1711,56 @@ QString RimStimPlanModel::pressureDate() const
|
|||||||
else
|
else
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
std::deque<RimExtractionConfiguration>
|
||||||
|
RimStimPlanModel::extractionConfigurations( RiaDefines::CurveProperty curveProperty ) const
|
||||||
|
{
|
||||||
|
if ( curveProperty == RiaDefines::CurveProperty::EQLNUM )
|
||||||
|
{
|
||||||
|
return {
|
||||||
|
RimExtractionConfiguration( "EQLNUM_1",
|
||||||
|
RiaDefines::ResultCatType::INPUT_PROPERTY,
|
||||||
|
RimExtractionConfiguration::EclipseCaseType::INITIAL_PRESSURE_CASE ),
|
||||||
|
RimExtractionConfiguration( "EQLNUM",
|
||||||
|
RiaDefines::ResultCatType::INPUT_PROPERTY,
|
||||||
|
RimExtractionConfiguration::EclipseCaseType::INITIAL_PRESSURE_CASE ),
|
||||||
|
RimExtractionConfiguration( "EQLNUM_1",
|
||||||
|
RiaDefines::ResultCatType::INPUT_PROPERTY,
|
||||||
|
RimExtractionConfiguration::EclipseCaseType::DYNAMIC_CASE ),
|
||||||
|
RimExtractionConfiguration( "EQLNUM",
|
||||||
|
RiaDefines::ResultCatType::INPUT_PROPERTY,
|
||||||
|
RimExtractionConfiguration::EclipseCaseType::DYNAMIC_CASE ),
|
||||||
|
RimExtractionConfiguration( "EQLNUM_1",
|
||||||
|
RiaDefines::ResultCatType::INPUT_PROPERTY,
|
||||||
|
RimExtractionConfiguration::EclipseCaseType::STATIC_CASE ),
|
||||||
|
RimExtractionConfiguration( "EQLNUM",
|
||||||
|
RiaDefines::ResultCatType::INPUT_PROPERTY,
|
||||||
|
RimExtractionConfiguration::EclipseCaseType::STATIC_CASE ),
|
||||||
|
RimExtractionConfiguration( "EQLNUM",
|
||||||
|
RiaDefines::ResultCatType::STATIC_NATIVE,
|
||||||
|
RimExtractionConfiguration::EclipseCaseType::STATIC_CASE ),
|
||||||
|
RimExtractionConfiguration( "EQLNUM",
|
||||||
|
RiaDefines::ResultCatType::STATIC_NATIVE,
|
||||||
|
RimExtractionConfiguration::EclipseCaseType::INITIAL_PRESSURE_CASE ),
|
||||||
|
RimExtractionConfiguration( "EQLNUM",
|
||||||
|
RiaDefines::ResultCatType::STATIC_NATIVE,
|
||||||
|
RimExtractionConfiguration::EclipseCaseType::DYNAMIC_CASE ),
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return std::deque<RimExtractionConfiguration>();
|
||||||
|
}
|
||||||
|
|
||||||
|
RimEclipseCase* RimStimPlanModel::eclipseCaseForType( RimExtractionConfiguration::EclipseCaseType caseType ) const
|
||||||
|
{
|
||||||
|
if ( caseType == RimExtractionConfiguration::EclipseCaseType::STATIC_CASE ) return m_staticEclipseCase;
|
||||||
|
if ( caseType == RimExtractionConfiguration::EclipseCaseType::DYNAMIC_CASE ) return m_eclipseCase;
|
||||||
|
if ( caseType == RimExtractionConfiguration::EclipseCaseType::INITIAL_PRESSURE_CASE )
|
||||||
|
return m_initialPressureEclipseCase;
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "RiaStimPlanModelDefines.h"
|
#include "RiaStimPlanModelDefines.h"
|
||||||
|
|
||||||
#include "RimCheckableNamedObject.h"
|
#include "RimCheckableNamedObject.h"
|
||||||
|
#include "RimExtractionConfiguration.h"
|
||||||
#include "RimWellPathComponentInterface.h"
|
#include "RimWellPathComponentInterface.h"
|
||||||
|
|
||||||
#include "RigWellLogExtractor.h"
|
#include "RigWellLogExtractor.h"
|
||||||
@ -178,6 +179,9 @@ public:
|
|||||||
RiaDefines::ResultCatType eclipseResultCategory( RiaDefines::CurveProperty curveProperty ) const;
|
RiaDefines::ResultCatType eclipseResultCategory( RiaDefines::CurveProperty curveProperty ) const;
|
||||||
QString eclipseResultVariable( RiaDefines::CurveProperty curveProperty ) const;
|
QString eclipseResultVariable( RiaDefines::CurveProperty curveProperty ) const;
|
||||||
|
|
||||||
|
std::deque<RimExtractionConfiguration> extractionConfigurations( RiaDefines::CurveProperty curveProperty ) const;
|
||||||
|
RimEclipseCase* eclipseCaseForType( RimExtractionConfiguration::EclipseCaseType ) const;
|
||||||
|
|
||||||
static double findFaciesValue( const RimColorLegend& colorLegend, const QString& name );
|
static double findFaciesValue( const RimColorLegend& colorLegend, const QString& name );
|
||||||
|
|
||||||
bool isScaledByNetToGross( RiaDefines::CurveProperty curveProperty ) const;
|
bool isScaledByNetToGross( RiaDefines::CurveProperty curveProperty ) const;
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
#include "RimEclipseInputProperty.h"
|
#include "RimEclipseInputProperty.h"
|
||||||
#include "RimEclipseInputPropertyCollection.h"
|
#include "RimEclipseInputPropertyCollection.h"
|
||||||
#include "RimEclipseResultDefinition.h"
|
#include "RimEclipseResultDefinition.h"
|
||||||
|
#include "RimExtractionConfiguration.h"
|
||||||
#include "RimModeledWellPath.h"
|
#include "RimModeledWellPath.h"
|
||||||
#include "RimNonNetLayers.h"
|
#include "RimNonNetLayers.h"
|
||||||
#include "RimStimPlanModel.h"
|
#include "RimStimPlanModel.h"
|
||||||
@ -83,23 +84,49 @@ bool RimStimPlanModelWellLogCalculator::calculate( RiaDefines::CurveProperty cur
|
|||||||
{
|
{
|
||||||
RiaLogging::debug(
|
RiaLogging::debug(
|
||||||
QString( "Calculating well log for '%1'." ).arg( caf::AppEnum<RiaDefines::CurveProperty>( curveProperty ).uiText() ) );
|
QString( "Calculating well log for '%1'." ).arg( caf::AppEnum<RiaDefines::CurveProperty>( curveProperty ).uiText() ) );
|
||||||
|
|
||||||
|
std::deque<RimExtractionConfiguration> extractionConfigurations =
|
||||||
|
stimPlanModel->extractionConfigurations( curveProperty );
|
||||||
|
|
||||||
std::deque<RimStimPlanModel::MissingValueStrategy> missingValueStratgies =
|
std::deque<RimStimPlanModel::MissingValueStrategy> missingValueStratgies =
|
||||||
stimPlanModel->missingValueStrategies( curveProperty );
|
stimPlanModel->missingValueStrategies( curveProperty );
|
||||||
|
|
||||||
if ( !extractValuesForProperty( curveProperty, stimPlanModel, timeStep, values, measuredDepthValues, tvDepthValues, rkbDiff ) )
|
if ( extractionConfigurations.empty() )
|
||||||
{
|
{
|
||||||
if ( std::find( missingValueStratgies.begin(),
|
if ( !extractValuesForProperty( curveProperty, stimPlanModel, timeStep, values, measuredDepthValues, tvDepthValues, rkbDiff ) )
|
||||||
missingValueStratgies.end(),
|
|
||||||
RimStimPlanModel::MissingValueStrategy::DEFAULT_VALUE ) != missingValueStratgies.end() )
|
|
||||||
{
|
{
|
||||||
RiaLogging::warning( QString( "Extraction failed. Trying fallback" ) );
|
if ( std::find( missingValueStratgies.begin(),
|
||||||
if ( !replaceMissingValuesWithDefault( curveProperty, stimPlanModel, values, measuredDepthValues, tvDepthValues, rkbDiff ) )
|
missingValueStratgies.end(),
|
||||||
|
RimStimPlanModel::MissingValueStrategy::DEFAULT_VALUE ) != missingValueStratgies.end() )
|
||||||
{
|
{
|
||||||
RiaLogging::error( "Fallback failed too." );
|
RiaLogging::warning( QString( "Extraction failed. Trying fallback" ) );
|
||||||
return false;
|
if ( !replaceMissingValuesWithDefault( curveProperty,
|
||||||
|
stimPlanModel,
|
||||||
|
values,
|
||||||
|
measuredDepthValues,
|
||||||
|
tvDepthValues,
|
||||||
|
rkbDiff ) )
|
||||||
|
{
|
||||||
|
RiaLogging::error( "Fallback failed too." );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( !extractValuesForPropertyWithConfigurations( curveProperty,
|
||||||
|
stimPlanModel,
|
||||||
|
timeStep,
|
||||||
|
values,
|
||||||
|
measuredDepthValues,
|
||||||
|
tvDepthValues,
|
||||||
|
rkbDiff ) )
|
||||||
|
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
double overburdenHeight = stimPlanModel->overburdenHeight();
|
double overburdenHeight = stimPlanModel->overburdenHeight();
|
||||||
if ( overburdenHeight > 0.0 )
|
if ( overburdenHeight > 0.0 )
|
||||||
@ -388,6 +415,65 @@ void RimStimPlanModelWellLogCalculator::scaleByNetToGross( const RimStimPlanMode
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RimStimPlanModelWellLogCalculator::extractValuesForPropertyWithConfigurations( RiaDefines::CurveProperty curveProperty,
|
||||||
|
const RimStimPlanModel* stimPlanModel,
|
||||||
|
int timeStep,
|
||||||
|
std::vector<double>& values,
|
||||||
|
std::vector<double>& measuredDepthValues,
|
||||||
|
std::vector<double>& tvDepthValues,
|
||||||
|
double& rkbDiff ) const
|
||||||
|
{
|
||||||
|
std::deque<RimExtractionConfiguration> extractionConfigurations =
|
||||||
|
stimPlanModel->extractionConfigurations( curveProperty );
|
||||||
|
|
||||||
|
QString curvePropertyName = caf::AppEnum<RiaDefines::CurveProperty>( curveProperty ).uiText();
|
||||||
|
|
||||||
|
for ( auto extractionConfig : extractionConfigurations )
|
||||||
|
{
|
||||||
|
RiaDefines::ResultCatType resultType = extractionConfig.resultCategory;
|
||||||
|
QString resultVariable = extractionConfig.resultVariable;
|
||||||
|
RimExtractionConfiguration::EclipseCaseType eclipseCaseType = extractionConfig.eclipseCaseType;
|
||||||
|
|
||||||
|
RiaLogging::info(
|
||||||
|
QString( "Trying extraction option for '%1': %2 %3 %4" )
|
||||||
|
.arg( curvePropertyName )
|
||||||
|
.arg( resultVariable )
|
||||||
|
.arg( caf::AppEnum<RiaDefines::ResultCatType>( resultType ).uiText() )
|
||||||
|
.arg( caf::AppEnum<RimExtractionConfiguration::EclipseCaseType>( eclipseCaseType ).uiText() ) );
|
||||||
|
|
||||||
|
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCaseForType( eclipseCaseType );
|
||||||
|
|
||||||
|
if ( !eclipseCase )
|
||||||
|
{
|
||||||
|
RiaLogging::info( "Skipping extraction config due to missing model." );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bool isOk = extractValuesForProperty( curveProperty,
|
||||||
|
stimPlanModel,
|
||||||
|
eclipseCase,
|
||||||
|
resultType,
|
||||||
|
resultVariable,
|
||||||
|
timeStep,
|
||||||
|
values,
|
||||||
|
measuredDepthValues,
|
||||||
|
tvDepthValues,
|
||||||
|
rkbDiff );
|
||||||
|
if ( isOk )
|
||||||
|
{
|
||||||
|
RiaLogging::info( "Extraction succeeded" );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RiaLogging::info( QString( "Extraction failed. Tried %1 configurations." ).arg( extractionConfigurations.size() ) );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -400,11 +486,37 @@ bool RimStimPlanModelWellLogCalculator::extractValuesForProperty( RiaDefines::Cu
|
|||||||
double& rkbDiff ) const
|
double& rkbDiff ) const
|
||||||
{
|
{
|
||||||
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCaseForProperty( curveProperty );
|
RimEclipseCase* eclipseCase = stimPlanModel->eclipseCaseForProperty( curveProperty );
|
||||||
if ( !eclipseCase )
|
if ( !eclipseCase ) return false;
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
RiaDefines::ResultCatType resultType = stimPlanModel->eclipseResultCategory( curveProperty );
|
||||||
|
QString resultVariable = stimPlanModel->eclipseResultVariable( curveProperty );
|
||||||
|
|
||||||
|
return extractValuesForProperty( curveProperty,
|
||||||
|
stimPlanModel,
|
||||||
|
eclipseCase,
|
||||||
|
resultType,
|
||||||
|
resultVariable,
|
||||||
|
timeStep,
|
||||||
|
values,
|
||||||
|
measuredDepthValues,
|
||||||
|
tvDepthValues,
|
||||||
|
rkbDiff );
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RimStimPlanModelWellLogCalculator::extractValuesForProperty( RiaDefines::CurveProperty curveProperty,
|
||||||
|
const RimStimPlanModel* stimPlanModel,
|
||||||
|
RimEclipseCase* eclipseCase,
|
||||||
|
RiaDefines::ResultCatType resultCategory,
|
||||||
|
const QString resultVariable,
|
||||||
|
int timeStep,
|
||||||
|
std::vector<double>& values,
|
||||||
|
std::vector<double>& measuredDepthValues,
|
||||||
|
std::vector<double>& tvDepthValues,
|
||||||
|
double& rkbDiff ) const
|
||||||
|
{
|
||||||
if ( !stimPlanModel->thicknessDirectionWellPath() )
|
if ( !stimPlanModel->thicknessDirectionWellPath() )
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -428,13 +540,13 @@ bool RimStimPlanModelWellLogCalculator::extractValuesForProperty( RiaDefines::Cu
|
|||||||
|
|
||||||
RimEclipseResultDefinition eclipseResultDefinition;
|
RimEclipseResultDefinition eclipseResultDefinition;
|
||||||
eclipseResultDefinition.setEclipseCase( eclipseCase );
|
eclipseResultDefinition.setEclipseCase( eclipseCase );
|
||||||
eclipseResultDefinition.setResultType( stimPlanModel->eclipseResultCategory( curveProperty ) );
|
eclipseResultDefinition.setResultType( resultCategory );
|
||||||
eclipseResultDefinition.setPorosityModel( RiaDefines::PorosityModelType::MATRIX_MODEL );
|
eclipseResultDefinition.setPorosityModel( RiaDefines::PorosityModelType::MATRIX_MODEL );
|
||||||
eclipseResultDefinition.setResultVariable( stimPlanModel->eclipseResultVariable( curveProperty ) );
|
eclipseResultDefinition.setResultVariable( resultVariable );
|
||||||
|
|
||||||
eclipseResultDefinition.loadResult();
|
eclipseResultDefinition.loadResult();
|
||||||
|
|
||||||
if ( stimPlanModel->eclipseResultCategory( curveProperty ) != RiaDefines::ResultCatType::DYNAMIC_NATIVE ||
|
if ( resultCategory != RiaDefines::ResultCatType::DYNAMIC_NATIVE ||
|
||||||
curveProperty == RiaDefines::CurveProperty::INITIAL_PRESSURE )
|
curveProperty == RiaDefines::CurveProperty::INITIAL_PRESSURE )
|
||||||
{
|
{
|
||||||
timeStep = 0;
|
timeStep = 0;
|
||||||
|
@ -29,9 +29,10 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
class RigEclipseCaseData;
|
class RigEclipseCaseData;
|
||||||
|
class RigResultAccessor;
|
||||||
class RimEclipseInputPropertyCollection;
|
class RimEclipseInputPropertyCollection;
|
||||||
class RimEclipseResultDefinition;
|
class RimEclipseResultDefinition;
|
||||||
class RigResultAccessor;
|
class RimEclipseCase;
|
||||||
|
|
||||||
class RimStimPlanModelWellLogCalculator : public RimStimPlanModelPropertyCalculator
|
class RimStimPlanModelWellLogCalculator : public RimStimPlanModelPropertyCalculator
|
||||||
{
|
{
|
||||||
@ -87,6 +88,25 @@ protected:
|
|||||||
std::vector<double>& tvDepthValues,
|
std::vector<double>& tvDepthValues,
|
||||||
double& rkbDiff ) const;
|
double& rkbDiff ) const;
|
||||||
|
|
||||||
|
bool extractValuesForProperty( RiaDefines::CurveProperty curveProperty,
|
||||||
|
const RimStimPlanModel* stimPlanModel,
|
||||||
|
RimEclipseCase* eclipseCase,
|
||||||
|
RiaDefines::ResultCatType resultCategory,
|
||||||
|
const QString resultVariable,
|
||||||
|
int timeStep,
|
||||||
|
std::vector<double>& values,
|
||||||
|
std::vector<double>& measuredDepthValues,
|
||||||
|
std::vector<double>& tvDepthValues,
|
||||||
|
double& rkbDiff ) const;
|
||||||
|
|
||||||
|
bool extractValuesForPropertyWithConfigurations( RiaDefines::CurveProperty curveProperty,
|
||||||
|
const RimStimPlanModel* stimPlanModel,
|
||||||
|
int timeStep,
|
||||||
|
std::vector<double>& values,
|
||||||
|
std::vector<double>& measuredDepthValues,
|
||||||
|
std::vector<double>& tvDepthValues,
|
||||||
|
double& rkbDiff ) const;
|
||||||
|
|
||||||
bool replaceMissingValuesWithDefault( RiaDefines::CurveProperty curveProperty,
|
bool replaceMissingValuesWithDefault( RiaDefines::CurveProperty curveProperty,
|
||||||
const RimStimPlanModel* stimPlanModel,
|
const RimStimPlanModel* stimPlanModel,
|
||||||
std::vector<double>& values,
|
std::vector<double>& values,
|
||||||
|
Loading…
Reference in New Issue
Block a user