MswRollUp: Made neighbour calculations handle cells on edge

This is an intermediate commit and does not compile
p4#: 22219
This commit is contained in:
Jacob Støren 2013-08-26 14:22:20 +02:00
parent 42408eda74
commit 9f2bc4f1d0
2 changed files with 12 additions and 7 deletions

View File

@ -267,12 +267,17 @@ bool RigCaseData::findSharedSourceFace(cvf::StructGridInterface::FaceType& share
size_t ni, nj, nk;
grid->neighborIJKAtCellFace(i, j, k, sourceFace, &ni, &nj, &nk);
size_t neighborCellIndex = grid->cellIndexFromIJK(ni, nj, nk);
if (neighborCellIndex == otherGridCellIndex)
if (grid->isCellValid(ni, nj, nk))
{
sharedSourceFace = sourceFace;
return true;
size_t neighborCellIndex = grid->cellIndexFromIJK(ni, nj, nk);
if (neighborCellIndex == otherGridCellIndex)
{
sharedSourceFace = sourceFace;
return true;
}
}
}

View File

@ -160,11 +160,11 @@ void StructGridInterface::neighborIJKAtCellFace(size_t i, size_t j, size_t k, Fa
switch (face)
{
case POS_I : (*ni)++; break;
case NEG_I : (*ni)--; break;
case NEG_I : if (i > 0) (*ni)--; else (*ni) = cvf::UNDEFINED_SIZE_T; break;
case POS_J : (*nj)++; break;
case NEG_J : (*nj)--; break;
case NEG_J : if (i > 0) (*nj)--; else (*nj) = cvf::UNDEFINED_SIZE_T; break;
case POS_K : (*nk)++; break;
case NEG_K : (*nk)--; break;
case NEG_K : if (i > 0) (*nj)--; else (*nj) = cvf::UNDEFINED_SIZE_T; break;
}
}