Skip to content

compressedIndexForInteriorLGR fails rank-asymmetrically in parallel LGR runs #7261

Description

@hnil

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions