Commit aab00788 authored by Mark Olesen's avatar Mark Olesen
Browse files

BUG: incorrect blocked face synchronisation crashes regionSplit (#1370)

- now catch these and emit a warning.
  Still need to investigate the root cause in the caller(s) or regionSplit.
parent 2d4e7adf
...@@ -534,6 +534,8 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::reduceRegions ...@@ -534,6 +534,8 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::reduceRegions
// Buffer for swapping boundary information // Buffer for swapping boundary information
labelList nbrRegion(mesh().nBoundaryFaces()); labelList nbrRegion(mesh().nBoundaryFaces());
bool emitWarning = true;
do do
{ {
if (debug) if (debug)
...@@ -599,9 +601,22 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::reduceRegions ...@@ -599,9 +601,22 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::reduceRegions
const label sent = localToGlobal[orig]; const label sent = localToGlobal[orig];
const label recv = patchNbrRegion[patchFacei]; const label recv = patchNbrRegion[patchFacei];
// Record the minimum value seen if (recv == UNASSIGNED)
if (recv < sent) {
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); auto fnd = updateLookup.find(sent);
if (!fnd.found()) if (!fnd.found())
{ {
...@@ -646,6 +661,7 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::reduceRegions ...@@ -646,6 +661,7 @@ Foam::autoPtr<Foam::globalIndex> Foam::regionSplit::reduceRegions
<< " local regions" << endl; << " local regions" << endl;
} }
emitWarning = false;
// Continue until there are no further changes // Continue until there are no further changes
} }
while (returnReduce(!updateLookup.empty(), orOp<bool>())); while (returnReduce(!updateLookup.empty(), orOp<bool>()));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment