diff --git a/dumux/io/gridcreator.hh b/dumux/io/gridcreator.hh index e9546a399479a492c0b2c0e5d8ac36516ee71040..d27b9bf0fa1bac1ae1b1b18009c087d10b854b99 100644 --- a/dumux/io/gridcreator.hh +++ b/dumux/io/gridcreator.hh @@ -254,11 +254,27 @@ protected: if(domainMarkers) { enableGmshDomainMarkers_ = true; - gridPtr() = std::shared_ptr<Grid>(Dune::GmshReader<Grid>::read(fileName, boundaryMarkers_, elementMarkers_, verbose, boundarySegments)); + if (Dune::MPIHelper::getCollectiveCommunication().rank() == 0) + { + gridPtr() = std::shared_ptr<Grid>(Dune::GmshReader<Grid>::read(fileName, boundaryMarkers_, elementMarkers_, verbose, boundarySegments)); + } + else + { + Dune::GridFactory<Grid> factory; + gridPtr() = std::shared_ptr<Grid>(factory.createGrid()); + } } else { - gridPtr() = std::shared_ptr<Grid>(Dune::GmshReader<Grid>::read(fileName, verbose, boundarySegments)); + if (Dune::MPIHelper::getCollectiveCommunication().rank() == 0) + { + gridPtr() = std::shared_ptr<Grid>(Dune::GmshReader<Grid>::read(fileName, verbose, boundarySegments)); + } + else + { + Dune::GridFactory<Grid> factory; + gridPtr() = std::shared_ptr<Grid>(factory.createGrid()); + } } } }