mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Added global cell indices to faults and added optimalizations
This commit is contained in:
parent
5edcb1c161
commit
d53e9aa9c1
@ -160,16 +160,17 @@ void RivFaultGeometryGenerator::computeArrays()
|
|||||||
|
|
||||||
if (m_showNativeFaultFaces)
|
if (m_showNativeFaultFaces)
|
||||||
{
|
{
|
||||||
for (size_t fIdx = 0; fIdx < faultFaces.size(); fIdx++)
|
#pragma omp parallel for
|
||||||
|
for (int fIdx = 0; fIdx < faultFaces.size(); fIdx++)
|
||||||
{
|
{
|
||||||
size_t cellIndex = faultFaces[fIdx].m_globalCellIndex;
|
size_t cellIndex = faultFaces[fIdx].m_nativeGlobalCellIndex;
|
||||||
|
|
||||||
if (m_limitFaultsToFilters)
|
if (m_limitFaultsToFilters)
|
||||||
{
|
{
|
||||||
if (!(*m_cellVisibility)[cellIndex]) continue;
|
if (!(*m_cellVisibility)[cellIndex]) continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
cvf::StructGridInterface::FaceType face = faultFaces[fIdx].m_face;
|
cvf::StructGridInterface::FaceType face = faultFaces[fIdx].m_nativeFace;
|
||||||
|
|
||||||
cvf::Vec3d cornerVerts[8];
|
cvf::Vec3d cornerVerts[8];
|
||||||
m_grid->cellCornerVertices(cellIndex, cornerVerts);
|
m_grid->cellCornerVertices(cellIndex, cornerVerts);
|
||||||
@ -195,18 +196,19 @@ void RivFaultGeometryGenerator::computeArrays()
|
|||||||
|
|
||||||
if (m_showOppositeFaultFaces)
|
if (m_showOppositeFaultFaces)
|
||||||
{
|
{
|
||||||
for (size_t fIdx = 0; fIdx < faultFaces.size(); fIdx++)
|
#pragma omp parallel for
|
||||||
|
for (int fIdx = 0; fIdx < faultFaces.size(); fIdx++)
|
||||||
{
|
{
|
||||||
size_t currentCellIndex = faultFaces[fIdx].m_globalCellIndex;
|
size_t cellIndex = faultFaces[fIdx].m_oppositeGlobalCellIndex;
|
||||||
cvf::StructGridInterface::FaceType currentFace = faultFaces[fIdx].m_face;
|
cvf::StructGridInterface::FaceType face = faultFaces[fIdx].m_oppositeFace;
|
||||||
cvf::StructGridInterface::FaceType face = m_grid->oppositeFace(currentFace);
|
|
||||||
|
/*
|
||||||
size_t i, j, k, ni, nj, nk;
|
size_t i, j, k, ni, nj, nk;
|
||||||
m_grid->ijkFromCellIndex(currentCellIndex, &i, &j, &k);
|
m_grid->ijkFromCellIndex(currentCellIndex, &i, &j, &k);
|
||||||
m_grid->neighborIJKAtCellFace(i, j, k, currentFace, &ni, &nj, &nk);
|
m_grid->neighborIJKAtCellFace(i, j, k, currentFace, &ni, &nj, &nk);
|
||||||
|
|
||||||
size_t cellIndex = m_grid->cellIndexFromIJK(ni, nj, nk);
|
size_t cellIndex = m_grid->cellIndexFromIJK(ni, nj, nk);
|
||||||
|
*/
|
||||||
if (m_limitFaultsToFilters)
|
if (m_limitFaultsToFilters)
|
||||||
{
|
{
|
||||||
if (!(*m_cellVisibility)[cellIndex]) continue;
|
if (!(*m_cellVisibility)[cellIndex]) continue;
|
||||||
|
@ -118,7 +118,15 @@ void RigFault::computeFaultFacesFromCellRanges(const RigMainGrid* grid)
|
|||||||
// Do not need to compute global grid cell index as for a maingrid localIndex == globalIndex
|
// Do not need to compute global grid cell index as for a maingrid localIndex == globalIndex
|
||||||
//size_t globalCellIndex = grid->globalGridCellIndex(localCellIndex);
|
//size_t globalCellIndex = grid->globalGridCellIndex(localCellIndex);
|
||||||
|
|
||||||
m_faultFaces.push_back(FaultFace(localCellIndex, faceEnum));
|
cvf::StructGridInterface::FaceType oppositeFace = grid->oppositeFace(faceEnum);
|
||||||
|
|
||||||
|
size_t ni, nj, nk;
|
||||||
|
grid->ijkFromCellIndex(localCellIndex, &i, &j, &k);
|
||||||
|
grid->neighborIJKAtCellFace(i, j, k, faceEnum, &ni, &nj, &nk);
|
||||||
|
|
||||||
|
size_t oppositeCellIndex = grid->cellIndexFromIJK(ni, nj, nk);
|
||||||
|
|
||||||
|
m_faultFaces.push_back(FaultFace(localCellIndex, faceEnum, oppositeCellIndex, oppositeFace));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,13 +39,17 @@ public:
|
|||||||
|
|
||||||
struct FaultFace
|
struct FaultFace
|
||||||
{
|
{
|
||||||
FaultFace(size_t globalCellIndex, cvf::StructGridInterface::FaceType face) :
|
FaultFace(size_t nativeGlobalCellIndex, cvf::StructGridInterface::FaceType nativeFace, size_t oppositeGlobalCellIndex, cvf::StructGridInterface::FaceType oppositeFace) :
|
||||||
m_globalCellIndex(globalCellIndex),
|
m_nativeGlobalCellIndex(nativeGlobalCellIndex),
|
||||||
m_face(face)
|
m_nativeFace(nativeFace),
|
||||||
{ }
|
m_oppositeGlobalCellIndex(oppositeGlobalCellIndex),
|
||||||
|
m_oppositeFace(oppositeFace)
|
||||||
|
{ }
|
||||||
|
|
||||||
size_t m_globalCellIndex;
|
size_t m_nativeGlobalCellIndex;
|
||||||
cvf::StructGridInterface::FaceType m_face;
|
cvf::StructGridInterface::FaceType m_nativeFace;
|
||||||
|
size_t m_oppositeGlobalCellIndex;
|
||||||
|
cvf::StructGridInterface::FaceType m_oppositeFace;
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -545,7 +545,8 @@ void RigGridBase::setFaults(const cvf::Collection<RigFault>& faults)
|
|||||||
{
|
{
|
||||||
m_faults = faults;
|
m_faults = faults;
|
||||||
|
|
||||||
for (size_t i = 0; i < m_faults.size(); i++)
|
#pragma omp parallel for
|
||||||
|
for (int i = 0; i < m_faults.size(); i++)
|
||||||
{
|
{
|
||||||
m_faults[i]->computeFaultFacesFromCellRanges(this->mainGrid());
|
m_faults[i]->computeFaultFacesFromCellRanges(this->mainGrid());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user