mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Reorganized wellLogExtraction code, preparing for GeoMech variant.
This commit is contained in:
parent
d7872971d3
commit
ef4b0fa0d3
@ -25,20 +25,10 @@
|
|||||||
#include "cvfBoundingBox.h"
|
#include "cvfBoundingBox.h"
|
||||||
#include "cvfGeometryTools.h"
|
#include "cvfGeometryTools.h"
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
/// Internal class for intersection point info
|
||||||
|
//==================================================================================================
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
RigEclipseWellLogExtractor::RigEclipseWellLogExtractor(const RigCaseData* aCase, const RigWellPath* wellpath)
|
|
||||||
: m_caseData(aCase), m_wellPath(wellpath)
|
|
||||||
{
|
|
||||||
calculateIntersection();
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
/// Internal class for intersection point info
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
struct HexIntersectionInfo
|
struct HexIntersectionInfo
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -98,9 +88,10 @@ int lineHexCellIntersection(const cvf::Vec3d p1, const cvf::Vec3d p2, const cvf:
|
|||||||
return intersectionCount;
|
return intersectionCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//==================================================================================================
|
||||||
/// Class used to sort the intersections along the wellpath
|
/// Class used to sort the intersections along the wellpath
|
||||||
//--------------------------------------------------------------------------------------------------
|
//==================================================================================================
|
||||||
|
|
||||||
struct WellPathDepthPoint
|
struct WellPathDepthPoint
|
||||||
{
|
{
|
||||||
WellPathDepthPoint(double md, bool entering): measuredDepth(md), isEnteringCell(entering){}
|
WellPathDepthPoint(double md, bool entering): measuredDepth(md), isEnteringCell(entering){}
|
||||||
@ -149,6 +140,36 @@ struct WellPathDepthPoint
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
///
|
||||||
|
//==================================================================================================
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RigEclipseWellLogExtractor::RigEclipseWellLogExtractor(const RigCaseData* aCase, const RigWellPath* wellpath)
|
||||||
|
: m_caseData(aCase), m_wellPath(wellpath)
|
||||||
|
{
|
||||||
|
calculateIntersection();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
const std::vector<double>& RigEclipseWellLogExtractor::measuredDepth()
|
||||||
|
{
|
||||||
|
return m_measuredDepth;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
const std::vector<double>& RigEclipseWellLogExtractor::trueVerticalDepth()
|
||||||
|
{
|
||||||
|
return m_trueVerticalDepth;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -271,28 +292,3 @@ std::vector<size_t> RigEclipseWellLogExtractor::findCloseCells(const cvf::Boundi
|
|||||||
|
|
||||||
return closeCells;
|
return closeCells;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
const std::vector<double>& RigEclipseWellLogExtractor::measuredDepth()
|
|
||||||
{
|
|
||||||
return m_measuredDepth;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
const std::vector<double>& RigEclipseWellLogExtractor::trueVerticalDepth()
|
|
||||||
{
|
|
||||||
return m_trueVerticalDepth;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
const std::vector<size_t>& RigEclipseWellLogExtractor::cellIndicesPrSegment()
|
|
||||||
{
|
|
||||||
CVF_ASSERT(false); // Not implemented
|
|
||||||
return m_globalCellIndicesPrSegment;
|
|
||||||
}
|
|
||||||
|
@ -43,26 +43,27 @@ class RigEclipseWellLogExtractor : public cvf::Object
|
|||||||
public:
|
public:
|
||||||
RigEclipseWellLogExtractor(const RigCaseData* aCase, const RigWellPath* wellpath);
|
RigEclipseWellLogExtractor(const RigCaseData* aCase, const RigWellPath* wellpath);
|
||||||
|
|
||||||
const std::vector<double>& measuredDepth();
|
const std::vector<double>& measuredDepth();
|
||||||
const std::vector<double>& trueVerticalDepth();
|
const std::vector<double>& trueVerticalDepth();
|
||||||
const std::vector<size_t>& cellIndicesPrSegment();
|
|
||||||
|
|
||||||
void curveData(const RigResultAccessor* resultAccessor, std::vector<double>* values );
|
void curveData(const RigResultAccessor* resultAccessor, std::vector<double>* values );
|
||||||
|
|
||||||
const RigCaseData* caseData() { return m_caseData.p();}
|
const RigCaseData* caseData() { return m_caseData.p();}
|
||||||
const RigWellPath* wellPathData() { return m_wellPath.p();}
|
const RigWellPath* wellPathData() { return m_wellPath.p();}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void calculateIntersection();
|
void calculateIntersection();
|
||||||
std::vector<size_t> findCloseCells(const cvf::BoundingBox& bb);
|
std::vector<size_t> findCloseCells(const cvf::BoundingBox& bb);
|
||||||
std::vector<double> m_measuredDepth;
|
|
||||||
std::vector<double> m_trueVerticalDepth;
|
|
||||||
std::vector<size_t> m_globalCellIndicesPrSegment;
|
|
||||||
std::vector<cvf::Vec3d> m_intersections;
|
|
||||||
std::vector<size_t> m_intersectedCells;
|
|
||||||
std::vector<cvf::StructGridInterface::FaceType> m_intersectedCellFaces;
|
|
||||||
|
|
||||||
cvf::cref<RigCaseData> m_caseData;
|
std::vector<double> m_measuredDepth;
|
||||||
cvf::cref<RigWellPath> m_wellPath;
|
std::vector<double> m_trueVerticalDepth;
|
||||||
|
|
||||||
|
std::vector<cvf::Vec3d> m_intersections;
|
||||||
|
std::vector<size_t> m_intersectedCells;
|
||||||
|
std::vector<cvf::StructGridInterface::FaceType>
|
||||||
|
m_intersectedCellFaces;
|
||||||
|
|
||||||
|
cvf::cref<RigCaseData> m_caseData;
|
||||||
|
cvf::cref<RigWellPath> m_wellPath;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user