int guessPoleIndex(int poleCellId) {
        if (alreadyIncludes(poleCellId)) {
            return cellIds.indexOf(poleCellId);
        }
        int cenRow = getCenterRow();
        int cenCellId = cellIds.get(getCenterIndex());
        int cellsToPole = mesh.getDistanceInCells(poleCellId, cenCellId);
        int poleRow;
        if (poleCellId == 0) {
            poleRow = cenRow - cellsToPole;     // South Pole
        } else {
            poleRow = cenRow + cellsToPole;     // North Pole
        }
        if ((poleRow < 0) || (poleRow >= numRows)) {
            return -1;
        }
        int cenCol = getCenterColumn();
        return getIndex(poleRow, cenCol);
    }