39 void starMesh::createCoupleMatches()
47 const label cellMapSize =
min
49 cellShapes_.size()/10,
61 label nLivePoints = points_.size();
63 const label infoJump =
max(1000, couples_.size()/20);
67 if (coupleI % infoJump == 0)
69 Info <<
"Doing couple " << coupleI <<
". STAR couple ID: "
70 << couples_[coupleI].coupleID() <<
endl;
79 Info<<
"coupleI: " << coupleI <<
endl
80 <<
"masterFace: " << masterFace <<
endl
81 <<
"master points: " << masterFace.
points(points_) <<
endl
82 <<
"slaveFace: " << slaveFace <<
endl
83 <<
"slave points: " << slaveFace.
points(points_)
88 scalar faceAreaAngle =
91 -(masterFace.
normal(points_) & slaveFace.
normal(points_))/
92 (masterFace.
mag(points_)*slaveFace.
mag(points_) + VSMALL)
95 if (faceAreaAngle < 0.94)
97 Info<<
"Couple direction mismatch in the couple match "
98 << coupleI <<
". STAR couple ID: "
99 << couples_[coupleI].coupleID() << endl
100 <<
"The angle between face normals is "
104 <<
" STAR number: " << starCellID_[fp.
masterCell()]
105 <<
" type: " << cellShapes_[fp.
masterCell()].model().name()
108 <<
" STAR number: " << starCellID_[fp.
slaveCell()]
109 <<
" type: " << cellShapes_[fp.
slaveCell()].model().name()
121 if (crfIter == cellRemovedFaces.
end())
123 cellRemovedFaces.insert
136 if (cafIter == cellAddedFaces.
end())
138 cellAddedFaces.insert
166 n /=
mag(n) + VSMALL;
170 forAll (masterEdges, masterEdgeI)
172 const edge& curMasterEdge = masterEdges[masterEdgeI];
180 # ifdef DEBUG_COUPLE_INTERSECTION
181 Info <<
"curMasterEdge: " << curMasterEdge << endl
182 <<
"P: " << P << endl <<
"d: " << d <<
endl;
188 forAll (slaveEdges, slaveEdgeI)
190 const edge& curSlaveEdge = slaveEdges[slaveEdgeI];
197 scalar
det = -(e & (n ^
d));
199 # ifdef DEBUG_COUPLE_INTERSECTION
200 Info <<
"curSlaveEdge: " << curSlaveEdge << endl
201 <<
"S: " << S << endl
202 <<
"e: " << e <<
endl;
205 if (
mag(det) > SMALL)
208 scalar
beta = ((S - P) & (n ^ d))/det;
210 # ifdef DEBUG_COUPLE_INTERSECTION
214 if (beta > -smallMergeTol_ && beta < 1 + smallMergeTol_)
218 (((S - P) & d) + beta*(d &
e))/
magSqr(d);
220 # ifdef DEBUG_COUPLE_INTERSECTION
221 Info <<
" alpha: " << alpha <<
endl;
226 alpha > -smallMergeTol_
227 && alpha < 1 + smallMergeTol_
231 # ifdef DEBUG_COUPLE_INTERSECTION
232 Info<<
"intersection of non-parallel edges"
240 if (alpha < smallMergeTol_)
245 beta > smallMergeTol_
246 && beta < 1 - smallMergeTol_
249 slaveEdgePoints[slaveEdgeI].append
251 curMasterEdge.
start()
255 else if (alpha > 1 - smallMergeTol_)
260 beta > smallMergeTol_
261 && beta < 1 - smallMergeTol_
264 slaveEdgePoints[slaveEdgeI].append
270 else if (beta < smallMergeTol_)
275 alpha > smallMergeTol_
276 && alpha < 1 - smallMergeTol_
279 masterEdgePoints[masterEdgeI].append
285 else if (beta > 1 - smallMergeTol_)
290 alpha > smallMergeTol_
291 && alpha < 1 - smallMergeTol_
294 masterEdgePoints[masterEdgeI].append
302 masterEdgePoints[masterEdgeI].append
304 nLivePoints + coupleFacePoints.
size()
307 slaveEdgePoints[slaveEdgeI].append
309 nLivePoints + coupleFacePoints.
size()
312 # ifdef DEBUG_COUPLE_INTERSECTION
313 Info<<
"regular intersection. "
315 << coupleFacePoints.
size()
317 << P + alpha*curMasterEdge.
vec(points_)
325 (P + alpha*curMasterEdge.
vec(points_));
346 bool colinear =
false;
355 (ps & d)/(
mag(ps)*
mag(d)) > 1.0 - smallMergeTol_
364 scalar alpha1 = (ps &
d)/
magSqr(d);
368 alpha1 > -smallMergeTol_
369 && alpha1 < 1 + smallMergeTol_
372 # ifdef DEBUG_COUPLE_INTERSECTION
373 Info<<
"adding irregular master "
375 << points_[slaveEdges[slaveEdgeI].start()]
379 masterEdgePoints[masterEdgeI].append
381 slaveEdges[slaveEdgeI].start()
385 scalar alpha2 = ((ps +
e) & d)/
magSqr(d);
389 alpha2 > -smallMergeTol_
390 && alpha2 < 1 + smallMergeTol_
393 # ifdef DEBUG_COUPLE_INTERSECTION
394 Info<<
"adding irregular master "
396 << points_[slaveEdges[slaveEdgeI].
end()]
400 masterEdgePoints[masterEdgeI].append
402 slaveEdges[slaveEdgeI].end()
412 scalar beta1 = (sp &
e)/
magSqr(e);
414 # ifdef DEBUG_COUPLE_INTERSECTION
415 Info <<
"P: " << P <<
" S: " << S <<
" d: " << d
416 <<
" e: " << e <<
" sp: " << sp
417 <<
" beta1: " << beta1 <<
endl;
422 beta1 > -smallMergeTol_
423 && beta1 < 1 + smallMergeTol_
426 # ifdef DEBUG_COUPLE_INTERSECTION
427 Info<<
"adding irregular slave "
429 << points_[masterEdges[masterEdgeI].start()]
433 slaveEdgePoints[slaveEdgeI].append
435 masterEdges[masterEdgeI].start()
439 scalar beta2 = ((sp +
d) & e)/
magSqr(e);
443 beta2 > -smallMergeTol_
444 && beta2 < 1 + smallMergeTol_
447 # ifdef DEBUG_COUPLE_INTERSECTION
448 Info <<
"adding irregular slave "
450 << points_[masterEdges[masterEdgeI].
end()]
454 slaveEdgePoints[slaveEdgeI].append
456 masterEdges[masterEdgeI].end()
464 # ifdef DEBUG_COUPLE_INTERSECTION
465 Info <<
"additional slave edge points: " <<
endl;
466 forAll (slaveEdgePoints, edgeI)
468 Info <<
"edge: " << edgeI <<
": " << slaveEdgePoints[edgeI]
474 if (nLivePoints + coupleFacePoints.
size() >= points_.size())
477 Info <<
"Resizing points list" <<
endl;
478 points_.setSize(points_.size() + couples_.size());
484 coupleFacePoints.
begin();
485 coupleFacePointsIter != coupleFacePoints.
end();
486 ++coupleFacePointsIter
489 points_[nLivePoints] = coupleFacePointsIter();
498 label nAdditionalMasterPoints = 0;
500 forAll (masterEdgePoints, edgeI)
502 nAdditionalMasterPoints += masterEdgePoints[edgeI].size();
508 + nAdditionalMasterPoints
510 label nTmpMasterLabels = 0;
512 # ifdef DEBUG_COUPLE_INTERSECTION
513 Info <<
"masterFace: " << masterFace << endl
514 <<
"nAdditionalMasterPoints: " << nAdditionalMasterPoints
518 forAll (masterEdges, masterEdgeI)
521 tmpMasterFace[nTmpMasterLabels] =
522 masterEdges[masterEdgeI].start();
527 masterEdgePoints[masterEdgeI];
532 vector edgeVector = masterEdges[masterEdgeI].vec(points_);
534 # ifdef DEBUG_FACE_ORDERING
535 Info<<
"edgeVector: " << edgeVector << endl
536 <<
"curMEdgePoints.size(): " << curMEdgePoints.
size()
541 edgeVector /=
magSqr(edgeVector);
543 point edgeStartPoint =
544 points_[masterEdges[masterEdgeI].start()];
549 label nextPointLabel = -1;
551 scalar minAlpha = GREAT;
558 curMEdgePoints.
begin();
559 curMEdgePointsIter != curMEdgePoints.
end();
563 if (!usedMasterPoint[i])
568 points_[curMEdgePointsIter()]
572 # ifdef DEBUG_FACE_ORDERING
573 Info<<
" edgeStartPoint: " << edgeStartPoint
575 << points_[masterEdges[masterEdgeI].end()]
577 << points_[curMEdgePointsIter()]
578 <<
" alpha: " << alpha <<
endl;
581 if (alpha < minAlpha)
585 nextPointLabel = curMEdgePointsIter();
589 # ifdef DEBUG_FACE_ORDERING
590 Info <<
"nextPointLabel: " << nextPointLabel <<
endl;
596 if (nextPointLabel > -1)
598 # ifdef DEBUG_FACE_ORDERING
599 Info<<
"added nextPointLabel: " << nextPointLabel
600 <<
" nTmpMasterLabels: " << nTmpMasterLabels
601 <<
" to place " << nTmpMasterLabels <<
endl;
604 usedMasterPoint[usedI] =
true;
606 tmpMasterFace[nTmpMasterLabels] =
618 tmpMasterFace.setSize(nTmpMasterLabels);
620 # ifdef DEBUG_FACE_ORDERING
621 Info <<
"tmpMasterFace: " << tmpMasterFace <<
endl;
625 face newMasterFace(
labelList(tmpMasterFace.size(), labelMax));
631 newMasterFace[0] = tmpMasterFace[0];
634 edgeList mstEdgesToCollapse = tmpMasterFace.edges();
637 cpMergePointTol_*
boundBox(tmpMasterFace.points(points_)).
mag();
639 forAll (mstEdgesToCollapse, edgeI)
641 # ifdef DEBUG_FACE_ORDERING
642 Info<<
"edgeI: " << edgeI <<
" curEdge: "
643 << mstEdgesToCollapse[edgeI] << endl
644 <<
"master edge " << edgeI <<
", "
645 << mstEdgesToCollapse[edgeI].mag(points_) <<
endl;
649 if (mstEdgesToCollapse[edgeI].
mag(points_) < masterTol)
651 newMasterFace[nMaster] =
654 newMasterFace[nMaster],
655 mstEdgesToCollapse[edgeI].end()
658 # ifdef DEBUG_FACE_ORDERING
659 Info <<
"Collapsed: nMaster: " << nMaster
660 <<
" label: " << newMasterFace[nMaster] <<
endl;
668 if (edgeI < mstEdgesToCollapse.
size() - 1)
671 # ifdef DEBUG_FACE_ORDERING
672 Info<<
"Added: nMaster: " << nMaster
673 <<
" label: " << mstEdgesToCollapse[edgeI].
end()
677 newMasterFace[nMaster] =
678 mstEdgesToCollapse[edgeI].
end();
683 newMasterFace.
setSize(nMaster);
686 Info<<
"newMasterFace: " << newMasterFace << endl
687 <<
"points: " << newMasterFace.points(points_) <<
endl;
693 label nAdditionalSlavePoints = 0;
695 forAll (slaveEdgePoints, edgeI)
697 nAdditionalSlavePoints += slaveEdgePoints[edgeI].size();
703 + nAdditionalSlavePoints
705 label nTmpSlaveLabels = 0;
707 # ifdef DEBUG_COUPLE_INTERSECTION
708 Info<<
"slaveFace: " << slaveFace << endl
709 <<
"nAdditionalSlavePoints: " << nAdditionalSlavePoints <<
endl;
712 forAll (slaveEdges, slaveEdgeI)
715 tmpSlaveFace[nTmpSlaveLabels] =
716 slaveEdges[slaveEdgeI].start();
721 slaveEdgePoints[slaveEdgeI];
726 vector edgeVector = slaveEdges[slaveEdgeI].vec(points_);
728 # ifdef DEBUG_FACE_ORDERING
729 Info <<
"curSEdgePoints.size(): "
730 << curSEdgePoints.
size() << endl
731 <<
"edgeVector: " << edgeVector <<
endl;
735 edgeVector /=
magSqr(edgeVector);
737 point edgeStartPoint =
738 points_[slaveEdges[slaveEdgeI].start()];
743 label nextPointLabel = -1;
745 scalar minAlpha = GREAT;
752 curSEdgePoints.
begin();
753 curSEdgePointsIter != curSEdgePoints.
end();
757 if (!usedSlavePoint[i])
762 points_[curSEdgePointsIter()]
766 # ifdef DEBUG_FACE_ORDERING
767 Info<<
" edgeStartPoint: " << edgeStartPoint
769 << points_[slaveEdges[slaveEdgeI].end()]
771 << points_[curSEdgePointsIter()]
772 <<
" alpha: " << alpha <<
endl;
775 if (alpha < minAlpha)
779 nextPointLabel = curSEdgePointsIter();
783 # ifdef DEBUG_FACE_ORDERING
784 Info <<
"nextPointLabel: " << nextPointLabel <<
endl;
790 if (nextPointLabel > -1)
792 # ifdef DEBUG_FACE_ORDERING
793 Info<<
"added nextPointLabel: " << nextPointLabel
794 <<
" nTmpSlaveLabels: " << nTmpSlaveLabels
795 <<
" to place " << nTmpSlaveLabels <<
endl;
798 usedSlavePoint[usedI] =
true;
800 tmpSlaveFace[nTmpSlaveLabels] =
812 tmpSlaveFace.setSize(nTmpSlaveLabels);
814 # ifdef DEBUG_FACE_ORDERING
815 Info <<
"tmpSlaveFace: " << tmpSlaveFace <<
endl;
825 newSlaveFace[0] = tmpSlaveFace[0];
828 edgeList slvEdgesToCollapse = tmpSlaveFace.edges();
831 cpMergePointTol_*
boundBox(tmpSlaveFace.points(points_)).
mag();
833 forAll(slvEdgesToCollapse, edgeI)
835 # ifdef DEBUG_FACE_ORDERING
836 Info <<
"slave edge length: " << edgeI <<
", "
837 << slvEdgesToCollapse[edgeI].mag(points_)<<
endl;
841 if (slvEdgesToCollapse[edgeI].
mag(points_) < slaveTol)
843 newSlaveFace[nSlave] =
846 newSlaveFace[nSlave],
847 slvEdgesToCollapse[edgeI].end()
853 if (edgeI < slvEdgesToCollapse.
size() - 1)
856 newSlaveFace[nSlave] = slvEdgesToCollapse[edgeI].
end();
864 Info<<
"newSlaveFace: " << newSlaveFace << endl
865 <<
"points: " << newSlaveFace.points(points_) << endl <<
endl;
878 edgeList newMasterEdges = newMasterFace.edges();
879 edgeList newSlaveEdges = newSlaveFace.edges();
881 # ifdef DEBUG_RIGHT_HAND_WALK
882 Info <<
"newMasterEdges: " << newMasterEdges << endl
883 <<
"newSlaveEdges: " << newSlaveEdges <<
endl;
886 edge startEdge(-1, -1);
892 label startEdgeFound = 0;
894 vector masterProjDir = -newMasterFace.normal(points_);
896 forAll (newSlaveEdges, edgeI)
902 point pointStart = points_[newSlaveEdges[edgeI].start()];
904 point pointEnd = points_[newSlaveEdges[edgeI].end()];
924 startEdge = newSlaveEdges[edgeI];
927 # ifdef DEBUG_RIGHT_HAND_WALK
935 if (startEdgeFound == 0)
937 vector slaveProjDir = -newSlaveFace.normal(points_);
939 forAll (newMasterEdges, edgeI)
945 point pointStart = points_[newMasterEdges[edgeI].start()];
947 point pointEnd = points_[newMasterEdges[edgeI].end()];
967 startEdge = newMasterEdges[edgeI];
970 # ifdef DEBUG_RIGHT_HAND_WALK
971 Info <<
"master edge found" <<
endl;
982 labelList(newMasterFace.size() + newSlaveFace.size(), -1)
985 if (startEdgeFound > 0)
987 # ifdef DEBUG_RIGHT_HAND_WALK
988 Info <<
"start edge: " << startEdge <<
endl;
1002 vector planeNormal = newMasterFace.normal(points_);
1003 planeNormal /=
mag(planeNormal) + VSMALL;
1005 # ifdef DEBUG_RIGHT_HAND_WALK
1006 Info <<
"planeNormal: " << planeNormal <<
endl;
1018 if (startEdgeFound == 1)
1020 faceCentre = newMasterFace.
centre(points_);
1024 faceCentre = newSlaveFace.
centre(points_);
1027 scalar tripleProduct =
1029 (faceCentre - points_[startEdge.start()])
1030 ^ startEdge.vec(points_)
1033 if (tripleProduct < 0)
1035 # ifdef DEBUG_RIGHT_HAND_WALK
1036 Info <<
"Turning edge for right-hand turn rule" <<
endl;
1038 startEdge = startEdge.reverseEdge();
1042 intersectedFace[0] = startEdge.start();
1043 intersectedFace[1] = startEdge.end();
1044 label nIntFacePoints = 2;
1046 edge curEdge = startEdge;
1048 bool completedFace =
false;
1055 forAll (newMasterEdges, edgeI)
1057 const edge& cme = newMasterEdges[edgeI];
1063 edgesToConsider.
append(cme);
1065 else if (cme.
end() == curEdge.
end())
1074 forAll (newSlaveEdges, edgeI)
1076 const edge& cse = newSlaveEdges[edgeI];
1082 edgesToConsider.
append(cse);
1084 else if (cse.
end() == curEdge.
end())
1092 # ifdef DEBUG_RIGHT_HAND_WALK
1093 Info<<
"number of edges to consider: "
1094 << edgesToConsider.
size() << endl
1095 <<
"edges to consider: " << edgesToConsider <<
endl;
1098 if (edgesToConsider.
empty())
1102 <<
"void starMesh::createCoupleMatches() : "
1103 << endl <<
"error in face intersection: "
1104 <<
"no edges to consider for closing the loop"
1105 << coupleI <<
". STAR couple ID: "
1106 << couples_[coupleI].coupleID() << endl
1107 <<
"Cut Master Face: " << newMasterFace << endl
1108 <<
"points: " << newMasterFace.points(points_)
1110 <<
"Cut Slave Face: " << newSlaveFace << endl
1111 <<
"points: " << newSlaveFace.points(points_)
1112 << endl <<
"intersected face: "
1119 ahead -= planeNormal*(planeNormal & ahead);
1120 ahead /=
mag(ahead) + VSMALL;
1123 vector right = ahead ^ planeNormal;
1124 right /=
mag(right) + VSMALL;
1127 edge nextEdge = edgesToConsider.
first();
1128 vector nextEdgeVec = nextEdge.
vec(points_);
1129 nextEdgeVec -= planeNormal*(planeNormal & nextEdgeVec);
1130 nextEdgeVec /=
mag(nextEdgeVec) + VSMALL;
1132 scalar rightTurn = nextEdgeVec & right;
1133 scalar goStraight = nextEdgeVec & ahead;
1135 # ifdef DEBUG_RIGHT_HAND_WALK
1136 Info<<
"rightTurn: " << rightTurn
1137 <<
" goStraight: " << goStraight <<
endl;
1143 edgesToConsider.
begin();
1144 etcIter != edgesToConsider.
end();
1149 vector newDir = etcIter().vec(points_);
1150 newDir -= planeNormal*(planeNormal & newDir);
1151 newDir /=
mag(newDir) + VSMALL;
1153 scalar curRightTurn = newDir & right;
1154 scalar curGoStraight = newDir & ahead;
1156 # ifdef DEBUG_RIGHT_HAND_WALK
1157 Info <<
"curRightTurn: " << curRightTurn
1158 <<
" curGoStraight: " << curGoStraight <<
endl;
1163 if (curRightTurn < 0)
1166 if (curGoStraight > goStraight)
1168 # ifdef DEBUG_RIGHT_HAND_WALK
1173 nextEdge = etcIter();
1174 rightTurn = curRightTurn;
1175 goStraight = curGoStraight;
1180 # ifdef DEBUG_RIGHT_HAND_WALK
1185 nextEdge = etcIter();
1186 rightTurn = curRightTurn;
1187 goStraight = curGoStraight;
1193 if (curRightTurn >= 0)
1196 if (curGoStraight < goStraight)
1198 # ifdef DEBUG_RIGHT_HAND_WALK
1203 nextEdge = etcIter();
1204 rightTurn = curRightTurn;
1205 goStraight = curGoStraight;
1212 if (nextEdge.
end() == intersectedFace[0])
1215 completedFace =
true;
1220 if (nIntFacePoints >= intersectedFace.size())
1224 <<
"void starMesh::createCoupleMatches() : "
1225 << endl <<
"error in intersected face: "
1226 <<
"lost thread for intersection of couple "
1227 << coupleI <<
". STAR couple ID: "
1228 << couples_[coupleI].coupleID() << endl
1229 <<
"Cut Master Face: " << newMasterFace << endl
1230 <<
"points: " << newMasterFace.points(points_)
1232 <<
"Cut Slave Face: " << newSlaveFace << endl
1233 <<
"points: " << newSlaveFace.points(points_)
1234 << endl <<
"intersected face: "
1240 intersectedFace[nIntFacePoints] = nextEdge.
end();
1246 # ifdef DEBUG_RIGHT_HAND_WALK
1247 Info<<
"inserted point " << nextEdge.
end() << endl
1248 <<
"curEdge: " << curEdge <<
endl;
1252 while (!completedFace);
1255 intersectedFace.setSize(nIntFacePoints);
1257 # ifdef DEBUG_COUPLE
1258 Info <<
"intersectedFace: " << intersectedFace <<
endl;
1262 forAll (intersectedFace, checkI)
1266 label checkJ = checkI + 1;
1267 checkJ < intersectedFace.size();
1271 if (intersectedFace[checkI] == intersectedFace[checkJ])
1275 <<
"void starMesh::createCoupleMatches() : "
1276 << endl <<
"error in intersected face: "
1277 <<
"duplicate point in intersected face "
1278 <<
"for couple no " << coupleI
1279 <<
". STAR couple ID: "
1280 << couples_[coupleI].coupleID() << endl
1281 <<
"Duplicate point label: "
1282 << intersectedFace[checkI] << endl
1283 <<
"Cut Master Face: " << newMasterFace << endl
1284 <<
"points: " << newMasterFace.points(points_)
1286 <<
"Cut Slave Face: " << newSlaveFace << endl
1287 <<
"points: " << newSlaveFace.points(points_)
1288 << endl <<
"intersected face: "
1299 <<
"void starMesh::createCoupleMatches() : " << endl
1300 <<
"could not find start edge for intersection of couple "
1301 << coupleI <<
". STAR couple ID: "
1302 << couples_[coupleI].coupleID() << endl
1303 <<
"Cut Master Face: " << newMasterFace << endl
1304 <<
"points: " << newMasterFace.points(points_) << endl
1305 <<
"Cut Slave Face: " << newSlaveFace << endl
1306 <<
"points: " << newSlaveFace.points(points_)
1312 vector pointProjectionNormal = -masterFace.
normal(points_);
1314 forAll (intersectedFace, intPointI)
1316 # ifdef DEBUG_COUPLE_PROJECTION
1317 Info <<
"Proj: old point: "
1318 << points_[intersectedFace[intPointI]] <<
endl;
1324 points_[intersectedFace[intPointI]],
1325 pointProjectionNormal,
1332 points_[intersectedFace[intPointI]] =
1335 # ifdef DEBUG_COUPLE_PROJECTION
1336 Info<<
" new point: "
1337 << points_[intersectedFace[intPointI]] <<
endl;
1346 masterFace.
normal(points_)
1347 & intersectedFace.normal(points_)
1351 intersectedFace = intersectedFace.reverseFace();
1360 if (crfMasterIter == cellRemovedFaces.
end())
1362 cellRemovedFaces.insert
1376 if (crfSlaveIter == cellRemovedFaces.
end())
1378 cellRemovedFaces.insert
1391 if (cafMasterIter == cellAddedFaces.
end())
1393 cellAddedFaces.insert
1401 cafMasterIter().append(intersectedFace);
1406 if (cafSlaveIter == cellAddedFaces.
end())
1408 cellAddedFaces.insert
1416 cafSlaveIter().append(intersectedFace.reverseFace());
1421 if (couples_.size())
1424 const labelList crfToc = cellRemovedFaces.toc();
1428 const label curCell = crfToc[cellI];
1430 const SLList<label>& curRemovedFaces = cellRemovedFaces[curCell];
1435 curRemovedFaces.
begin();
1436 curRemovedFacesIter != curRemovedFaces.
end();
1437 ++curRemovedFacesIter
1440 cellFaces_[curCell][curRemovedFacesIter()].setSize(0);
1443 if (curRemovedFaces.
size())
1450 const labelList cafToc = cellAddedFaces.toc();
1455 const label curCell = cafToc[cellI];
1457 const SLList<face>& curAddedFaces = cellAddedFaces[curCell];
1459 faceList oldFaces = cellFaces_[curCell];
1461 faceList& newFaces = cellFaces_[curCell];
1464 label nNewFaces = 0;
1469 if (oldFaces[faceI].size())
1471 newFaces[nNewFaces] = oldFaces[faceI];
1480 curAddedFaces.
begin();
1481 curAddedFacesIter != curAddedFaces.
end();
1485 newFaces[nNewFaces] = curAddedFacesIter();
1492 if (curAddedFaces.
size())
1500 points_.setSize(nLivePoints);
1503 Info <<
"Finished doing couples" <<
endl;