31 void Foam::directInteractionList::buildDirectInteractionList
33 bool pointPointListBuild
36 Info<<
nl <<
"Building list of direct interaction neighbours" <<
endl;
40 List<DynamicList<label> > directInteractionList(
mesh.nCells());
42 if (pointPointListBuild)
44 Info<<
tab <<
"Point-Point direct interaction list build." <<
endl;
52 pointJIndex = pointIIndex;
53 pointJIndex !=
mesh.points().size();
61 mesh.pointCells()[pointIIndex]
66 mesh.pointCells()[pointJIndex]
71 const label cellI(ptICells[pIC]);
75 const label cellJ(ptJCells[pJC]);
83 directInteractionList[cellI],
89 directInteractionList[cellI].append(cellJ);
99 directInteractionList[cellJ],
106 directInteractionList[cellJ].append(cellI);
117 Info<<
tab <<
"Point-Face, Edge-Edge direct interaction list build."
128 const label cellO(
mesh.faceOwner()[
f]);
132 const label cellI(pCells[pC]);
142 directInteractionList[cellI],
149 directInteractionList[cellI].append(cellO);
159 directInteractionList[cellO],
166 directInteractionList[cellO].append(cellI);
170 if (
mesh.isInternalFace(
f))
175 const label cellN(
mesh.faceNeighbour()[
f]);
183 directInteractionList[cellI],
190 directInteractionList[cellI].append(cellN);
200 directInteractionList[cellN],
207 directInteractionList[cellN].append(cellI);
220 const edge& eI(
mesh.edges()[edgeIIndex]);
224 edgeJIndex = edgeIIndex + 1;
225 edgeJIndex !=
mesh.edges().size();
229 const edge& eJ(
mesh.edges()[edgeJIndex]);
239 const label cellI(eICells[eIC]);
243 const label cellJ(eJCells[eJC]);
251 directInteractionList[cellI],
258 directInteractionList[cellI].append(cellJ);
268 directInteractionList[cellJ],
275 directInteractionList[cellJ].append(cellI);
285 forAll(directInteractionList, transDIL)
287 (*this)[transDIL].transfer
289 directInteractionList[transDIL].shrink()
304 Foam::directInteractionList::directInteractionList
307 bool pointPointListBuild
313 if ((*this).size() > 1)
315 buildDirectInteractionList(pointPointListBuild);
317 else if ((*this).size() == 1)
320 <<
"Single cell mesh, no direct interaction lists required."
323 (*this)[0].setSize(0);
328 Foam::directInteractionList::directInteractionList
336 Info<<
"Read directInteractionList from disk not implemented" <<
endl;