Fracture : Move code to cpp

This commit is contained in:
Magne Sjaastad
2018-03-08 20:35:47 +01:00
parent 12b7ddf90b
commit 64845d796c
4 changed files with 154 additions and 49 deletions

View File

@@ -22,16 +22,63 @@
#include <QString> #include <QString>
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RigFractureCell::RigFractureCell(std::vector<cvf::Vec3d> polygon, size_t i, size_t j) RigFractureCell::RigFractureCell(std::vector<cvf::Vec3d> polygon, size_t i, size_t j)
: m_polygon(polygon)
, m_i(i)
, m_j(j)
, m_concutivityValue(0.0)
{ {
m_polygon = polygon; }
m_i = i;
m_j = j; //--------------------------------------------------------------------------------------------------
m_concutivityValue = 0.0; ///
//--------------------------------------------------------------------------------------------------
const std::vector<cvf::Vec3d>& RigFractureCell::getPolygon() const
{
return m_polygon;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RigFractureCell::getConductivtyValue() const
{
return m_concutivityValue;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigFractureCell::getI() const
{
return m_i;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigFractureCell::getJ() const
{
return m_j;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RigFractureCell::hasNonZeroConductivity() const
{
return m_concutivityValue > 1e-7;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigFractureCell::setConductivityValue(double cond)
{
m_concutivityValue = cond;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -39,8 +86,8 @@ RigFractureCell::RigFractureCell(std::vector<cvf::Vec3d> polygon, size_t i, size
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RigFractureCell::cellSizeX() const double RigFractureCell::cellSizeX() const
{ {
//The polygon corners are always stored in the same order // The polygon corners are always stored in the same order
if (m_polygon.size()>1) return (m_polygon[1] - m_polygon[0]).length(); if (m_polygon.size() > 1) return (m_polygon[1] - m_polygon[0]).length();
return cvf::UNDEFINED_DOUBLE; return cvf::UNDEFINED_DOUBLE;
} }
@@ -49,8 +96,6 @@ double RigFractureCell::cellSizeX() const
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
double RigFractureCell::cellSizeZ() const double RigFractureCell::cellSizeZ() const
{ {
if (m_polygon.size()>2) return (m_polygon[2] - m_polygon[1]).length(); if (m_polygon.size() > 2) return (m_polygon[2] - m_polygon[1]).length();
return cvf::UNDEFINED_DOUBLE; return cvf::UNDEFINED_DOUBLE;
} }

View File

@@ -33,13 +33,13 @@ class RigFractureCell
public: public:
RigFractureCell(std::vector<cvf::Vec3d> polygon, size_t i, size_t j); RigFractureCell(std::vector<cvf::Vec3d> polygon, size_t i, size_t j);
const std::vector<cvf::Vec3d>& getPolygon() const { return m_polygon; } const std::vector<cvf::Vec3d>& getPolygon() const;
double getConductivtyValue() const { return m_concutivityValue; } double getConductivtyValue() const;
size_t getI() const { return m_i; } size_t getI() const;
size_t getJ() const { return m_j; } size_t getJ() const;
bool hasNonZeroConductivity() const { return m_concutivityValue > 1e-7; } bool hasNonZeroConductivity() const;
void setConductivityValue(double cond) { m_concutivityValue = cond; } void setConductivityValue(double cond);
double cellSizeX() const; double cellSizeX() const;
double cellSizeZ() const; double cellSizeZ() const;
@@ -50,4 +50,3 @@ private:
size_t m_i; size_t m_i;
size_t m_j; size_t m_j;
}; };

View File

@@ -17,17 +17,58 @@
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
#include "RigFractureGrid.h" #include "RigFractureGrid.h"
#include "RiaLogging.h" #include "RiaLogging.h"
#include <QString> #include <QString>
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RigFractureGrid::RigFractureGrid() RigFractureGrid::RigFractureGrid()
: m_iCellCount(0), : m_iCellCount(0)
m_jCellCount(0) , m_jCellCount(0)
{ {
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigFractureGrid::setFractureCells(std::vector<RigFractureCell> fractureCells)
{
m_fractureCells = fractureCells;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigFractureGrid::setWellCenterFractureCellIJ(std::pair<size_t, size_t> wellCenterFractureCellIJ)
{
m_wellCenterFractureCellIJ = wellCenterFractureCellIJ;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigFractureGrid::setICellCount(size_t iCellCount)
{
m_iCellCount = iCellCount;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigFractureGrid::setJCellCount(size_t jCellCount)
{
m_jCellCount = jCellCount;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<RigFractureCell>& RigFractureGrid::fractureCells() const
{
return m_fractureCells;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -50,7 +91,7 @@ const RigFractureCell& RigFractureGrid::cellFromIndex(size_t index) const
} }
else else
{ {
//TODO: Better error handling? // TODO: Better error handling?
RiaLogging::error(QString("Requesting non-existent StimPlanCell")); RiaLogging::error(QString("Requesting non-existent StimPlanCell"));
RiaLogging::error(QString("Returning cell 0, results will be invalid")); RiaLogging::error(QString("Returning cell 0, results will be invalid"));
const RigFractureCell& cell = m_fractureCells[0]; const RigFractureCell& cell = m_fractureCells[0];
@@ -58,4 +99,26 @@ const RigFractureCell& RigFractureGrid::cellFromIndex(size_t index) const
} }
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigFractureGrid::jCellCount() const
{
return m_jCellCount;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigFractureGrid::iCellCount() const
{
return m_iCellCount;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::pair<size_t, size_t> RigFractureGrid::fractureCellAtWellCenter() const
{
return m_wellCenterFractureCellIJ;
}

View File

@@ -31,23 +31,22 @@ class RigFractureCell;
/// ///
//================================================================================================== //==================================================================================================
class RigFractureGrid : public cvf::Object class RigFractureGrid : public cvf::Object
{ {
public: public:
RigFractureGrid(); RigFractureGrid();
void setFractureCells(std::vector<RigFractureCell> fractureCells) { m_fractureCells = fractureCells; } void setFractureCells(std::vector<RigFractureCell> fractureCells);
void setWellCenterFractureCellIJ(std::pair<size_t, size_t> wellCenterFractureCellIJ) { m_wellCenterFractureCellIJ = wellCenterFractureCellIJ; } void setWellCenterFractureCellIJ(std::pair<size_t, size_t> wellCenterFractureCellIJ);
void setICellCount(size_t iCellCount) { m_iCellCount = iCellCount; } void setICellCount(size_t iCellCount);
void setJCellCount(size_t jCellCount) { m_jCellCount = jCellCount; } void setJCellCount(size_t jCellCount);
const std::vector<RigFractureCell>& fractureCells() const { return m_fractureCells; } const std::vector<RigFractureCell>& fractureCells() const;
size_t getGlobalIndexFromIJ(size_t i, size_t j) const; size_t getGlobalIndexFromIJ(size_t i, size_t j) const;
const RigFractureCell& cellFromIndex(size_t index) const; const RigFractureCell& cellFromIndex(size_t index) const;
size_t jCellCount() const { return m_jCellCount; } size_t jCellCount() const;
size_t iCellCount() const { return m_iCellCount; } size_t iCellCount() const;
std::pair<size_t, size_t> fractureCellAtWellCenter() const { return m_wellCenterFractureCellIJ; } std::pair<size_t, size_t> fractureCellAtWellCenter() const;
private: private:
std::vector<RigFractureCell> m_fractureCells; std::vector<RigFractureCell> m_fractureCells;
@@ -55,4 +54,3 @@ private:
size_t m_iCellCount; size_t m_iCellCount;
size_t m_jCellCount; size_t m_jCellCount;
}; };