diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8Data.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8Data.C index ac5357cafaf321e4e6316deda46e5ac3202dea13..08fc68edf0c21bf6d09065c39d5af64042e63728 100644 --- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8Data.C +++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8Data.C @@ -61,7 +61,15 @@ Foam::hexRef8Data::hexRef8Data(const IOobject& io) { IOobject rio(io); rio.rename("level0Edge"); - bool haveFile = returnReduce(rio.headerOk(), orOp<bool>()); + + // MEJ: temporarily (until global reading of UniformedFields) + // do not read level0Edge on processors that do not have it. + bool haveFile = rio.headerOk(); + if (rio.readOpt() != IOobject::READ_IF_PRESENT) + { + reduce(haveFile, orOp<bool>()); + } + if (haveFile) { Info<< "Reading hexRef8 data : " << rio.name() << endl; @@ -264,7 +272,7 @@ void Foam::hexRef8Data::sync(const IOobject& io) if (hasLevel0Edge) { // Get master length - scalar masterLen = level0EdgePtr_().value(); + scalar masterLen = (Pstream::master() ? level0EdgePtr_().value() : 0); Pstream::scatter(masterLen); if (!level0EdgePtr_.valid()) {