diff --git a/src/meshTools/regionSplit/regionSplit.C b/src/meshTools/regionSplit/regionSplit.C index 47056b2092ae97f8808c7ecc98e80640de6f6414..71a98de02d04a27b97c006c2b86701a7ca4f9de5 100644 --- a/src/meshTools/regionSplit/regionSplit.C +++ b/src/meshTools/regionSplit/regionSplit.C @@ -532,6 +532,8 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::reduceRegions // Buffer for swapping boundary information labelList nbrRegion(mesh().nBoundaryFaces()); + bool emitWarning = true; + do { if (debug) @@ -597,9 +599,22 @@ Foam::autoPtr<Foam::globalIndex> 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()) { @@ -644,6 +659,7 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::reduceRegions << " local regions" << endl; } + emitWarning = false; // Continue until there are no further changes } while (returnReduce(!updateLookup.empty(), orOp<bool>()));