diff --git a/src/meshTools/regionSplit/regionSplit.C b/src/meshTools/regionSplit/regionSplit.C index be0e34a8d5..e8adfa180c 100644 --- a/src/meshTools/regionSplit/regionSplit.C +++ b/src/meshTools/regionSplit/regionSplit.C @@ -534,6 +534,8 @@ Foam::autoPtr Foam::regionSplit::reduceRegions // Buffer for swapping boundary information labelList nbrRegion(mesh().nBoundaryFaces()); + bool emitWarning = true; + do { if (debug) @@ -599,9 +601,22 @@ Foam::autoPtr Foam::regionSplit::reduceRegions const label sent = localToGlobal[orig]; const label recv = patchNbrRegion[patchFacei]; - // Record the minimum value seen - if (recv < sent) + if (recv == UNASSIGNED) { + if (emitWarning) + { + Pout<<"Warning in regionSplit:" + " received unassigned on " + << pp.name() << " at patchFace " + << patchFacei + << ". Check synchronisation in caller" + << nl; + } + } + else if (recv < sent) + { + // Record the minimum value seen + auto fnd = updateLookup.find(sent); if (!fnd.found()) { @@ -646,6 +661,7 @@ Foam::autoPtr Foam::regionSplit::reduceRegions << " local regions" << endl; } + emitWarning = false; // Continue until there are no further changes } while (returnReduce(!updateLookup.empty(), orOp()));