35 void domainDecomposition::distributeCells()
37 Info<<
"\nCalculating distribution of cells" <<
endl;
47 if (decompositionDict_.found(
"preservePatches"))
49 wordList pNames(decompositionDict_.lookup(
"preservePatches"));
51 Info<<
"Keeping owner of faces in patches " << pNames
52 <<
" on same processor. This only makes sense for cyclics." <<
endl;
63 <<
"Unknown preservePatch " << pNames[i]
64 << endl <<
"Valid patches are " << patches.
names()
76 if (decompositionDict_.found(
"preserveFaceZones"))
78 wordList zNames(decompositionDict_.lookup(
"preserveFaceZones"));
80 Info<<
"Keeping owner and neighbour of faces in zones " << zNames
81 <<
" on same processor" <<
endl;
92 <<
"Unknown preserveFaceZone " << zNames[i]
93 << endl <<
"Valid faceZones are " << fZones.
names()
101 sameProcFaces.
insert(fz[i]);
117 if (sameProcFaces.
empty())
119 if (decompositionDict_.found(
"weightField"))
121 word weightName = decompositionDict_.lookup(
"weightField");
136 cellToProc_ = decomposePtr().decompose
139 weights.internalField()
144 cellToProc_ = decomposePtr().decompose(cellCentres());
149 Info<<
"Selected " << sameProcFaces.
size()
150 <<
" faces whose owner and neighbour cell should be kept on the"
151 <<
" same processor" <<
endl;
153 if (decompositionDict_.found(
"weightField"))
155 WarningIn(
"void domainDecomposition::distributeCells()")
156 <<
"weightField not supported when agglomerated "
157 <<
"decomposition required" <<
endl;
162 boolList blockedFace(nFaces(),
true);
166 blockedFace[iter.key()] =
false;
180 blockedFace[pp.
start()+i] =
false;
197 const point greatPoint(GREAT, GREAT, GREAT);
199 pointField regionCentres(globalRegion.nRegions(), greatPoint);
201 forAll(globalRegion, cellI)
203 label regionI = globalRegion[cellI];
205 if (regionCentres[regionI] == greatPoint)
207 regionCentres[regionI] = cellCentres()[cellI];
213 cellToProc_ = decomposePtr().decompose(globalRegion, regionCentres);
216 Info<<
"\nFinished decomposition in "