#7452 Remove magic number.

This commit is contained in:
Kristian Bendiksen 2021-03-12 13:23:38 +01:00
parent 8542643963
commit 66df15224f
4 changed files with 49 additions and 12 deletions

View File

@ -444,19 +444,25 @@ bool RimStimPlanModelCalculator::calculateStressWithGradients( std::vector<doubl
double diffPressureEQLBottom = findValueAtBottomOfLayer( pressureDiffData, layerBoundaryIndexes, i );
if ( !std::isinf( diffPressureEQLTop ) )
{
lengthOfLayer = 2.0;
double offset = RimStimPlanModelPressureCalculator::pressureDifferenceInterpolationOffset();
lengthOfLayer = offset * 2.0;
diffPressureLayer = diffPressureEQLTop;
diffStressLayer =
calculateStressAtDepth( depthTopOfZone - 1, stressDepthRef, verticalStressRef, verticalStressGradientRef ) -
calculateStressAtDepth( depthTopOfZone + 1, stressDepthRef, verticalStressRef, verticalStressGradientRef );
diffStressLayer = calculateStressDifferenceAtDepth( depthTopOfZone,
offset,
stressDepthRef,
verticalStressRef,
verticalStressGradientRef );
}
else if ( !std::isinf( diffPressureEQLBottom ) )
{
lengthOfLayer = 2.0;
double offset = RimStimPlanModelPressureCalculator::pressureDifferenceInterpolationOffset();
lengthOfLayer = offset * 2.0;
diffPressureLayer = diffPressureEQLBottom;
diffStressLayer =
calculateStressAtDepth( depthBottomOfZone - 1, stressDepthRef, verticalStressRef, verticalStressGradientRef ) -
calculateStressAtDepth( depthBottomOfZone + 1, stressDepthRef, verticalStressRef, verticalStressGradientRef );
diffStressLayer = calculateStressDifferenceAtDepth( depthBottomOfZone,
offset,
stressDepthRef,
verticalStressRef,
verticalStressGradientRef );
}
double stressGradient = ( diffStressLayer * k0 + diffPressureLayer * ( 1.0 - k0 ) ) / lengthOfLayer;
@ -466,6 +472,19 @@ bool RimStimPlanModelCalculator::calculateStressWithGradients( std::vector<doubl
return true;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RimStimPlanModelCalculator::calculateStressDifferenceAtDepth( double depth,
double offset,
double stressDepthRef,
double verticalStressRef,
double verticalStressGradientRef )
{
return calculateStressAtDepth( depth - offset, stressDepthRef, verticalStressRef, verticalStressGradientRef ) -
calculateStressAtDepth( depth + offset, stressDepthRef, verticalStressRef, verticalStressGradientRef );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -93,6 +93,12 @@ protected:
const std::vector<double>& inputVector,
std::vector<double>& result );
static double calculateStressDifferenceAtDepth( double depth,
double offset,
double stressDepthRef,
double verticalStressRef,
double verticalStressGradientRef );
static double calculateStressAtDepth( double depth,
double stressDepthRef,
double verticalStressRef,

View File

@ -656,10 +656,11 @@ bool RimStimPlanModelPressureCalculator::interpolatePressureDifferenceByEquilibr
DepthValuePairVector depthValuePairs = valuesPerEqlNum[eqlNum];
if ( !depthValuePairs.empty() )
{
double depth = tvDepthValues[i];
double p1 = interpolatePressure( depthValuePairs, depth - 1, eqlNum );
double p2 = interpolatePressure( depthValuePairs, depth + 1, eqlNum );
values[i] = p2 - p1;
double offset = pressureDifferenceInterpolationOffset();
double depth = tvDepthValues[i];
double p1 = interpolatePressure( depthValuePairs, depth - offset, eqlNum );
double p2 = interpolatePressure( depthValuePairs, depth + offset, eqlNum );
values[i] = p2 - p1;
RiaLogging::debug( QString( "INTERPOLATING PRESSURE DIFF: %1 %2 = %3" ).arg( p1 ).arg( p2 ).arg( p2 - p1 ) );
}
}
@ -667,3 +668,12 @@ bool RimStimPlanModelPressureCalculator::interpolatePressureDifferenceByEquilibr
return true;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RimStimPlanModelPressureCalculator::pressureDifferenceInterpolationOffset()
{
// Unit: meter
return 1.0;
}

View File

@ -43,6 +43,8 @@ public:
bool isMatching( RiaDefines::CurveProperty curveProperty ) const override;
static double pressureDifferenceInterpolationOffset();
protected:
bool extractValuesForProperty( RiaDefines::CurveProperty curveProperty,
const RimStimPlanModel* stimPlanModel,