mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Store coarsening boxes in RigGridBase
Assign index to coarse cells back to coarse box they are a part of p4#: 21675
This commit is contained in:
@@ -42,7 +42,7 @@ RigCell::RigCell() :
|
||||
m_hostGrid(NULL),
|
||||
m_isInvalid(false),
|
||||
m_cellIndex(cvf::UNDEFINED_SIZE_T),
|
||||
m_isInCoarseCell(false)
|
||||
m_coarseningBoxIndex(cvf::UNDEFINED_SIZE_T)
|
||||
{
|
||||
memcpy(m_cornerIndices.m_array, undefinedCornersArray, 8*sizeof(size_t));
|
||||
|
||||
|
||||
@@ -54,8 +54,8 @@ public:
|
||||
size_t mainGridCellIndex() const { return m_mainGridCellIndex; }
|
||||
void setMainGridCellIndex(size_t mainGridCellContainingThisCell) { m_mainGridCellIndex = mainGridCellContainingThisCell; }
|
||||
|
||||
bool isInCoarseCell() const { return m_isInCoarseCell; }
|
||||
void setInCoarseCell(bool isInCoarseCell) { m_isInCoarseCell = isInCoarseCell; }
|
||||
size_t coarseningBoxIndex() const { return m_coarseningBoxIndex; }
|
||||
void setCoarseningBoxIndex(size_t coarseningBoxIndex) { m_coarseningBoxIndex = coarseningBoxIndex; }
|
||||
|
||||
void setCellFaceFault(cvf::StructGridInterface::FaceType face) { m_cellFaceFaults[face] = true; }
|
||||
bool isCellFaceFault(cvf::StructGridInterface::FaceType face) const { return m_cellFaceFaults[face]; }
|
||||
@@ -71,9 +71,10 @@ private:
|
||||
RigGridBase* m_hostGrid;
|
||||
RigLocalGrid* m_subGrid;
|
||||
|
||||
size_t m_parentCellIndex; ///< Grid cell index of the cell in the parent grid containing this cell
|
||||
size_t m_parentCellIndex; ///< Grid cell index of the cell in the parent grid containing this cell
|
||||
size_t m_mainGridCellIndex;
|
||||
bool m_isInCoarseCell;
|
||||
|
||||
size_t m_coarseningBoxIndex; ///< If defined, index into list of coarsening boxes in RigGridBase
|
||||
|
||||
bool m_cellFaceFaults[6];
|
||||
|
||||
|
||||
@@ -457,6 +457,42 @@ size_t RigGridBase::globalGridCellIndex(size_t localGridCellIndex) const
|
||||
return m_indexToStartOfCells + localGridCellIndex;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
size_t RigGridBase::addCoarseningBox(size_t i1, size_t i2, size_t j1, size_t j2, size_t k1, size_t k2)
|
||||
{
|
||||
caf::SizeTArray6 box;
|
||||
box[0] = i1;
|
||||
box[1] = i2;
|
||||
box[2] = j1;
|
||||
box[3] = j2;
|
||||
box[4] = k1;
|
||||
box[5] = k2;
|
||||
|
||||
m_coarseningBoxInfo.push_back(box);
|
||||
|
||||
return m_coarseningBoxInfo.size() - 1;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RigGridBase::coarseningBox(size_t coarseningBoxIndex, size_t* i1, size_t* i2, size_t* j1, size_t* j2, size_t* k1, size_t* k2) const
|
||||
{
|
||||
CVF_ASSERT(coarseningBoxIndex < m_coarseningBoxInfo.size());
|
||||
|
||||
CVF_ASSERT(i1 && i2 && j1 && j2 && k1 && k2);
|
||||
|
||||
caf::SizeTArray6 box = m_coarseningBoxInfo[coarseningBoxIndex];
|
||||
*i1 = box[0];
|
||||
*i2 = box[1];
|
||||
*j1 = box[2];
|
||||
*j2 = box[3];
|
||||
*k1 = box[4];
|
||||
*k2 = box[5];
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <string>
|
||||
#include "cvfStructGridScalarDataAccess.h"
|
||||
#include "RifReaderInterface.h"
|
||||
#include "cafFixedArray.h"
|
||||
|
||||
|
||||
class RigMainGrid;
|
||||
@@ -63,6 +64,9 @@ public:
|
||||
void computeFaults();
|
||||
bool isMainGrid() const;
|
||||
RigMainGrid* mainGrid() const { return m_mainGrid; }
|
||||
|
||||
size_t addCoarseningBox(size_t i1, size_t i2, size_t j1, size_t j2, size_t k1, size_t k2);
|
||||
void coarseningBox(size_t coarseningBoxIndex, size_t* i1, size_t* i2, size_t* j1, size_t* j2, size_t* k1, size_t* k2) const;
|
||||
|
||||
protected:
|
||||
friend class RigMainGrid;//::initAllSubGridsParentGridPointer();
|
||||
@@ -101,6 +105,7 @@ private:
|
||||
size_t m_gridIndex; ///< The LGR index of this grid. Starts with 1. Main grid has index 0.
|
||||
RigMainGrid* m_mainGrid;
|
||||
|
||||
std::vector<caf::SizeTArray6> m_coarseningBoxInfo;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user