49 void Foam::cellSplitter::getFaceInfo
72 zoneFlip = fZone.flipMap()[fZone.whichFace(facei)];
79 Foam::label Foam::cellSplitter::newOwner
82 const Map<labelList>& cellToCells
85 const label old = mesh_.faceOwner()[facei];
87 const auto iter = cellToCells.cfind(old);
100 const cell& cFaces = mesh_.cells()[old];
102 return newCells[cFaces.find(facei)];
106 Foam::label Foam::cellSplitter::newNeighbour
109 const Map<labelList>& cellToCells
112 const label old = mesh_.faceNeighbour()[facei];
114 const auto iter = cellToCells.cfind(old);
127 const cell& cFaces = mesh_.cells()[old];
129 return newCells[cFaces.find(facei)];
135 Foam::cellSplitter::cellSplitter(
const polyMesh&
mesh)
146 const Map<point>& cellToMidPoint,
147 polyTopoChange& meshMod
150 addedPoints_.clear();
151 addedPoints_.resize(cellToMidPoint.size());
160 const label celli = iter.key();
162 label anchorPoint = mesh_.
cellPoints()[celli][0];
175 addedPoints_.insert(celli, addedPointi);
187 Map<labelList> cellToCells(cellToMidPoint.size());
191 const label celli = iter.key();
193 const cell& cFaces = mesh_.
cells()[celli];
202 for (label i = 1; i < cFaces.size(); i++)
217 newCells[i] = addedCelli;
220 cellToCells.insert(celli, newCells);
236 const label celli = iter.key();
238 label midPointi = addedPoints_[celli];
240 const cell& cFaces = mesh_.
cells()[celli];
246 label edgeI = cEdges[i];
247 const edge&
e = mesh_.
edges()[edgeI];
255 const labelList& newCells = cellToCells[celli];
257 label cell0 = newCells[cFaces.find(face0)];
258 label cell1 = newCells[cFaces.find(face1)];
265 const face& f0 = mesh_.
faces()[face0];
267 label index = f0.find(
e[0]);
269 bool edgeInFaceOrder = (f0[f0.fcIndex(index)] ==
e[1]);
274 if (edgeInFaceOrder == (mesh_.
faceOwner()[face0] == celli))
311 const face& f1 = mesh_.
faces()[face1];
313 label index = f1.find(
e[0]);
315 bool edgeInFaceOrder = (f1[f1.fcIndex(index)] ==
e[1]);
320 if (edgeInFaceOrder == (mesh_.
faceOwner()[face1] == celli))
362 bitSet faceUpToDate(mesh_.
nFaces(),
true);
366 const label celli = iter.key();
368 const cell& cFaces = mesh_.
cells()[celli];
370 faceUpToDate.unset(cFaces);
373 forAll(faceUpToDate, facei)
375 if (!faceUpToDate.test(facei))
377 faceUpToDate.set(facei);
379 const face&
f = mesh_.
faces()[facei];
383 label newOwn = newOwner(facei, cellToCells);
384 label newNbr = newNeighbour(facei, cellToCells);
426 label newOwn = newOwner(facei, cellToCells);
435 mesh_.
faces()[facei],
456 Map<label> newAddedPoints(addedPoints_.size());
460 const label oldCelli = iter.key();
461 const label oldPointi = iter.val();
463 const label newCelli = morphMap.reverseCellMap()[oldCelli];
464 const label
newPointi = morphMap.reversePointMap()[oldPointi];
468 newAddedPoints.insert(newCelli,
newPointi);
473 addedPoints_.transfer(newAddedPoints);