39 template<
class>
class FaceList,
45 const scalar mergeDist,
57 gi.
gather(
p.points(), mergedPoints);
59 pointSizes = gi.sizes();
66 gatheredFaces[Pstream::myProcNo()] =
p;
67 Pstream::gatherList(gatheredFaces);
69 if (Pstream::master())
73 ListListOps::combineOffset<List<Face>>
84 if (Pstream::master())
104 mergedPoints.transfer(newPoints);
118 template<
class FaceList>
122 const FaceList& localFaces,
134 typedef typename FaceList::value_type FaceType;
136 if (Pstream::parRun())
139 globalPointsPtr =
mesh.globalData().mergePoints
144 uniqueMeshPointLabels
149 if (Pstream::master())
160 mergedFaces.
setSize(globalFacesPtr().size());
161 mergedPoints.setSize(globalPointsPtr().size());
164 label pOffset = globalPointsPtr().offset(Pstream::masterNo());
165 SubList<point>(mergedPoints, myPoints.size(), pOffset) = myPoints;
167 label fOffset = globalFacesPtr().offset(Pstream::masterNo());
172 for (
int slave=1; slave<Pstream::nProcs(); slave++)
174 IPstream fromSlave(Pstream::commsTypes::scheduled, slave);
179 label pOffset = globalPointsPtr().offset(slave);
183 label fOffset = globalFacesPtr().offset(slave);
202 Pstream::commsTypes::scheduled,
204 myPoints.byteSize() + 4*
sizeof(
label)*myFaces.size()
206 toMaster << myPoints << myFaces;
211 pointToGlobal =
identity(meshPoints.size());
212 uniqueMeshPointLabels = pointToGlobal;
217 mergedFaces = localFaces;