47 label minSize = labelMax;
48 label maxSize = labelMin;
54 if (sCells.
size() > 0)
56 sumSize += sCells.
size();
58 minSize =
min(minSize, sCells.
size());
59 maxSize =
max(maxSize, sCells.
size());
68 os <<
"Stencil size :" <<
nl
69 <<
" average : " << scalar(sumSize)/nSum <<
nl
70 <<
" min : " << minSize <<
nl
71 <<
" max : " << maxSize <<
nl
79 if (procI != Pstream::myProcNo())
120 forAll(procPatchMap, procI)
122 if (procPatchMap[procI] != -1)
124 globalToProc[procI].
resize
126 patches[procPatchMap[procI]].size()
132 forAll(faceStencil, faceI)
134 const labelList& stencilCells = faceStencil[faceI];
138 label globalCellI = stencilCells[i];
139 label procI = globalNumbering.
whichProcID(stencilCells[i]);
141 if (procI != Pstream::myProcNo())
143 label nCompact = globalToProc[procI].
size();
144 globalToProc[procI].insert(globalCellI, nCompact);
149 forAll(globalToProc, procI)
151 if (procI != Pstream::myProcNo())
184 labelList compactStart(Pstream::nProcs());
185 compactStart[Pstream::myProcNo()] = 0;
186 label nCompact = globalNumbering.
localSize();
187 forAll(compactStart, procI)
189 if (procI != Pstream::myProcNo())
191 compactStart[procI] = nCompact;
192 nCompact += globalToProc[procI].
size();
199 for (label procI = 0; procI < Pstream::nProcs(); procI++)
201 if (procI != Pstream::myProcNo())
203 labelList wantedGlobals(globalToProc[procI].size());
204 recvCompact[procI].
setSize(globalToProc[procI].size());
209 wantedGlobals[i] = iter.key();
210 recvCompact[procI][i] = compactStart[procI]+iter();
215 OPstream str(Pstream::blocking, procI);
216 str << wantedGlobals;
226 for (label procI = 0; procI < Pstream::nProcs(); procI++)
228 if (procI != Pstream::myProcNo())
232 IPstream str(Pstream::blocking, procI);
235 labelList& procCompact = sendCompact[procI];
242 label cellI = globalNumbering.
toLocal(globalCells[i]);
243 procCompact[i] = compactStart[Pstream::myProcNo()]+cellI;
248 sendCompact[procI] = recvCompact[procI];
253 forAll(faceStencil, faceI)
255 labelList& stencilCells = faceStencil[faceI];
259 label globalCellI = stencilCells[i];
260 label procI = globalNumbering.
whichProcID(globalCellI);
261 if (procI != Pstream::myProcNo())
263 label localCompact = globalToProc[procI][globalCellI];
264 stencilCells[i] = compactStart[procI]+localCompact;
268 label localCompact = globalNumbering.
toLocal(globalCellI);
269 stencilCells[i] = compactStart[procI]+localCompact;
294 Foam::extendedCellToFaceStencil::extendedCellToFaceStencil(
const polyMesh& mesh)
303 if (isA<coupledPolyPatch>(patches[patchI]))
306 refCast<const coupledPolyPatch>(patches[patchI]);
312 "extendedCellToFaceStencil::extendedCellToFaceStencil"
314 ) <<
"Coupled patches with transformations not supported."