Fix crash due to global/local grid index mixup when creating fractures on SimWellPaths.

* Introduces a convenience method on the main grid
* Also converts some callers to use the convenience method.
This commit is contained in:
Gaute Lindkvist
2018-05-08 14:37:23 +02:00
parent 0ebedc844f
commit f24fb4aaec
6 changed files with 48 additions and 21 deletions

View File

@@ -360,9 +360,12 @@ QString RimSimWellFracture::createOneBasedIJKText() const
size_t i,j,k;
size_t anchorCellIdx = findAnchorEclipseCell(mainGrid);
if (anchorCellIdx == cvf::UNDEFINED_SIZE_T) return "";
size_t gridLocalCellIdx;
const RigGridBase* hostGrid = mainGrid->gridAndGridLocalIdxFromGlobalCellIdx(anchorCellIdx, &gridLocalCellIdx);
bool ok = mainGrid->ijkFromCellIndex(anchorCellIdx, &i, &j, &k);
bool ok = hostGrid->ijkFromCellIndex(gridLocalCellIdx, &i, &j, &k);
if (!ok) return "";
return QString("[%1, %2, %3]").arg(i + 1).arg(j + 1).arg(k + 1);
return QString("Grid %1: [%2, %3, %4]").arg(QString::fromStdString(hostGrid->gridName())).arg(i + 1).arg(j + 1).arg(k + 1);
}

View File

@@ -285,10 +285,8 @@ void RimFaultInViewCollection::syncronizeFaults()
QString secondConnectionText;
{
const RigCell& cell = mainGrid->globalCellArray()[nncConnections[i].m_c1GlobIdx];
RigGridBase* hostGrid = cell.hostGrid();
size_t gridLocalCellIndex = cell.gridLocalCellIndex();
size_t gridLocalCellIndex;
const RigGridBase* hostGrid = mainGrid->gridAndGridLocalIdxFromGlobalCellIdx(nncConnections[i].m_c1GlobIdx, &gridLocalCellIndex);
size_t i, j, k;
if (hostGrid->ijkFromCellIndex(gridLocalCellIndex, &i, &j, &k))
@@ -308,10 +306,8 @@ void RimFaultInViewCollection::syncronizeFaults()
}
{
const RigCell& cell = mainGrid->globalCellArray()[nncConnections[i].m_c2GlobIdx];
RigGridBase* hostGrid = cell.hostGrid();
size_t gridLocalCellIndex = cell.gridLocalCellIndex();
size_t gridLocalCellIndex;
const RigGridBase* hostGrid = mainGrid->gridAndGridLocalIdxFromGlobalCellIdx(nncConnections[i].m_c2GlobIdx, &gridLocalCellIndex);
size_t i, j, k;
if (hostGrid->ijkFromCellIndex(gridLocalCellIndex, &i, &j, &k))