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 "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
|
||||
{
|
||||
|
||||
@ -98,9 +88,10 @@ int lineHexCellIntersection(const cvf::Vec3d p1, const cvf::Vec3d p2, const cvf:
|
||||
return intersectionCount;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Class used to sort the intersections along the wellpath
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
//==================================================================================================
|
||||
/// Class used to sort the intersections along the wellpath
|
||||
//==================================================================================================
|
||||
|
||||
struct WellPathDepthPoint
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
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:
|
||||
RigEclipseWellLogExtractor(const RigCaseData* aCase, const RigWellPath* wellpath);
|
||||
|
||||
const std::vector<double>& measuredDepth();
|
||||
const std::vector<double>& trueVerticalDepth();
|
||||
const std::vector<size_t>& cellIndicesPrSegment();
|
||||
const std::vector<double>& measuredDepth();
|
||||
const std::vector<double>& trueVerticalDepth();
|
||||
|
||||
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 RigWellPath* wellPathData() { return m_wellPath.p();}
|
||||
const RigCaseData* caseData() { return m_caseData.p();}
|
||||
const RigWellPath* wellPathData() { return m_wellPath.p();}
|
||||
|
||||
private:
|
||||
void calculateIntersection();
|
||||
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;
|
||||
void calculateIntersection();
|
||||
std::vector<size_t> findCloseCells(const cvf::BoundingBox& bb);
|
||||
|
||||
cvf::cref<RigCaseData> m_caseData;
|
||||
cvf::cref<RigWellPath> m_wellPath;
|
||||
std::vector<double> m_measuredDepth;
|
||||
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