Two problems in CpGridVanguard::compressedIndexForInteriorLGR:
- The
.at() lookup throws std::out_of_range on ranks whose leaf grid does not contain the cell (the refined box lives on other ranks). Ranks that do hold it proceed into the next collective, so the run deadlocks at setup. The expected answer is -1, the same "not interior on this rank" contract as compressedIndexForInterior.
- Overlap cells inside the box are refined too (marking iterates all partitions), and the level mappers include them, so a lookup can return an overlap copy and two ranks claim the same connection. The result must be filtered on interiority, as
compressedIndexForInterior does.
An unknown LGR name is different: names are registered on every rank (empty level grid where the box is absent), so a miss is a programming error and should stay fatal.
Repro: opm-tests/lgr/SPE1CASE1_CARFIN_GR.DATA (well inside the LGR) on 2 ranks with --enable-ecl-output=false (to stay clear of the unsupported parallel LGR output). Note the same deck still fails later in beginReportStep with the fix in place - one rank throws during well initialization while its peer waits in gatherDeferredLogger - so parallel wells inside LGRs have a further, separate problem.
Fix for the lookup proposed in #7245.
Two problems in
CpGridVanguard::compressedIndexForInteriorLGR:.at()lookup throwsstd::out_of_rangeon ranks whose leaf grid does not contain the cell (the refined box lives on other ranks). Ranks that do hold it proceed into the next collective, so the run deadlocks at setup. The expected answer is -1, the same "not interior on this rank" contract ascompressedIndexForInterior.compressedIndexForInteriordoes.An unknown LGR name is different: names are registered on every rank (empty level grid where the box is absent), so a miss is a programming error and should stay fatal.
Repro:
opm-tests/lgr/SPE1CASE1_CARFIN_GR.DATA(well inside the LGR) on 2 ranks with--enable-ecl-output=false(to stay clear of the unsupported parallel LGR output). Note the same deck still fails later inbeginReportStepwith the fix in place - one rank throws during well initialization while its peer waits ingatherDeferredLogger- so parallel wells inside LGRs have a further, separate problem.Fix for the lookup proposed in #7245.