List<SharedData> sharedDatas = sharedDataManager.getBorderSharedData(region);
List<Point> directions = sharedDataManager.getBorderDirections(region);
assert sharedDatas.size() == directions.size();
for (int i = 0; i < sharedDatas.size(); ++i) {
Point remoteGhostCellIndex = getRemoteGhostCellIndex(x, y, directions.get(i));
sharedDatas.get(i).registerBorderCell(
myCells[realIndex(x)][realIndex(y)],
remoteGhostCellIndex);
}