Skip to content

Commit

Permalink
(#433) Using measured depth read from from well path files
Browse files Browse the repository at this point in the history
  • Loading branch information
palhagen committed Sep 10, 2015
1 parent 615ac05 commit 03aa8cc
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions ApplicationCode/ReservoirDataModel/RigEclipseWellLogExtractor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ void RigEclipseWellLogExtractor::calculateIntersection()
{
const std::vector<cvf::Vec3d>& nodeCoords = m_caseData->mainGrid()->nodes();

double globalMeasuredDepth = 0; // Where do we start ? z - of first well path point ?
bool isCellFaceNormalsOut = m_caseData->mainGrid()->isFaceNormalsOutwards();

if (!m_wellPath->m_wellPathPoints.size()) return ;
Expand All @@ -60,7 +59,7 @@ void RigEclipseWellLogExtractor::calculateIntersection()
bb.add(p1);
bb.add(p2);

std::vector<size_t> closeCells = findCloseCells(bb );
std::vector<size_t> closeCells = findCloseCells(bb);
std::vector<HexIntersectionInfo> intersections;

cvf::Vec3d hexCorners[8];
Expand All @@ -87,11 +86,25 @@ void RigEclipseWellLogExtractor::calculateIntersection()
// map <WellPathDepthPoint, (CellIdx, intersectionPoint)>
std::map<WellPathDepthPoint, HexIntersectionInfo > sortedIntersections;

double md1 = m_wellPath->m_measuredDepths[wpp];
double md2 = m_wellPath->m_measuredDepths[wpp+1];

for (size_t intIdx = 0; intIdx < intersections.size(); ++intIdx)
{
if (!isCellFaceNormalsOut) intersections[intIdx].m_isIntersectionEntering = !intersections[intIdx].m_isIntersectionEntering ;
double lenghtAlongLineSegment = (intersections[intIdx].m_intersectionPoint - p1).length();
double measuredDepthOfPoint = globalMeasuredDepth + lenghtAlongLineSegment;
double lenghtAlongLineSegment1 = (intersections[intIdx].m_intersectionPoint - p1).length();
double lenghtAlongLineSegment2 = (p2 - intersections[intIdx].m_intersectionPoint).length();
double measuredDepthDiff = md2 - md1;
double lineLength = lenghtAlongLineSegment1 + lenghtAlongLineSegment2;
double measuredDepthOfPoint = 0.0;
if (lineLength > 0.00001)
{
measuredDepthOfPoint = md1 + measuredDepthDiff*lenghtAlongLineSegment1/(lineLength);
}
else
{
measuredDepthOfPoint = md1;
}
sortedIntersections.insert(std::make_pair(WellPathDepthPoint(measuredDepthOfPoint, intersections[intIdx].m_isIntersectionEntering), intersections[intIdx]));
}

Expand All @@ -108,9 +121,6 @@ void RigEclipseWellLogExtractor::calculateIntersection()
m_intersectedCellFaces.push_back(it->second.m_face);
++it;
}

// Increment the measured depth
globalMeasuredDepth += (p2-p1).length();
}
}

Expand Down

0 comments on commit 03aa8cc

Please sign in to comment.