Remove WBS-averaging over element

This commit is contained in:
Gaute Lindkvist 2020-01-27 16:00:44 +01:00
parent 5f6b9b43c6
commit 480ff8f707
2 changed files with 3 additions and 64 deletions

View File

@ -243,12 +243,7 @@ std::vector<RigGeoMechWellLogExtractor::WbsParameterSource>
#pragma omp parallel for
for ( int64_t intersectionIdx = 0; intersectionIdx < (int64_t)m_intersections.size(); ++intersectionIdx )
{
float averageUnscaledValue = std::numeric_limits<float>::infinity();
averageIntersectionValuesToSegmentValue( intersectionIdx,
interpolatedInterfaceValues,
std::numeric_limits<float>::infinity(),
&averageUnscaledValue );
gridValues[intersectionIdx] = static_cast<double>( averageUnscaledValue );
gridValues[intersectionIdx] = static_cast<double>( interpolatedInterfaceValues[intersectionIdx] );
}
}
@ -560,11 +555,8 @@ void RigGeoMechWellLogExtractor::wellBoreWallCurveData( const RigFemResultAddres
double poissonRatio = poissonAllSegments[intersectionIdx];
double ucsBar = ucsAllSegments[intersectionIdx];
caf::Ten3d segmentStress;
bool validSegmentStress = averageIntersectionValuesToSegmentValue( intersectionIdx,
interpolatedInterfaceStressBar,
caf::Ten3d::invalid(),
&segmentStress );
caf::Ten3d segmentStress = interpolatedInterfaceStressBar[intersectionIdx];
bool validSegmentStress = segmentStress != caf::Ten3d::invalid();
cvf::Vec3d wellPathTangent = calculateWellPathTangent( intersectionIdx, TangentConstantWithinCell );
caf::Ten3d wellPathStressFloat = transformTensorToWellPathOrientation( wellPathTangent, segmentStress );
@ -1095,54 +1087,6 @@ double RigGeoMechWellLogExtractor::pascalToBar( double pascalValue )
return pascalValue * 1.0e-5;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
template <typename T>
bool RigGeoMechWellLogExtractor::averageIntersectionValuesToSegmentValue( size_t intersectionIdx,
const std::vector<T>& values,
const T& invalidValue,
T* averagedCellValue ) const
{
CVF_ASSERT( values.size() >= 2 );
*averagedCellValue = invalidValue;
T value1, value2;
cvf::Vec3d centroid( cellCentroid( intersectionIdx ) );
double dist1 = 0.0, dist2 = 0.0;
if ( intersectionIdx % 2 == 0 )
{
value1 = values[intersectionIdx];
value2 = values[intersectionIdx + 1];
dist1 = ( centroid - m_intersections[intersectionIdx] ).length();
dist2 = ( centroid - m_intersections[intersectionIdx + 1] ).length();
}
else
{
value1 = values[intersectionIdx - 1];
value2 = values[intersectionIdx];
dist1 = ( centroid - m_intersections[intersectionIdx - 1] ).length();
dist2 = ( centroid - m_intersections[intersectionIdx] ).length();
}
if ( invalidValue == value1 || invalidValue == value2 )
{
return false;
}
RiaWeightedMeanCalculator<T> averageCalc;
averageCalc.addValueAndWeight( value1, dist2 );
averageCalc.addValueAndWeight( value2, dist1 );
if ( averageCalc.validAggregatedWeight() )
{
*averagedCellValue = averageCalc.weightedMean();
}
return true;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -120,11 +120,6 @@ private:
double getWellLogSegmentValue( size_t intersectionIdx,
const std::vector<std::pair<double, double>>& wellLogValues ) const;
template <typename T>
bool averageIntersectionValuesToSegmentValue( size_t intersectionIdx,
const std::vector<T>& intersectionValues,
const T& invalidValue,
T* averagedSegmentValue ) const;
static double pascalToBar( double pascalValue );
template <typename T>