28 #include "primitiveMesh.H"
43 Pout<<
"void slidingInterface::decoupleInterface("
44 <<
"polyTopoChange& ref) const : "
45 <<
"Decoupling sliding interface " <<
name() <<
endl;
52 Pout<<
"void slidingInterface::decoupleInterface("
53 <<
"polyTopoChange& ref) const : "
54 <<
"Interface already decoupled." <<
endl;
73 mesh.faceZones()[masterFaceZoneID_.index()]();
76 mesh.faceZones()[masterFaceZoneID_.index()];
79 mesh.faceZones()[masterFaceZoneID_.index()].flipMap();
81 const labelList& masterFc = masterFaceCells();
85 forAll(masterPatchAddr, faceI)
88 face newFace = faces[masterPatchAddr[faceI]];
90 if (masterPatchFlip[faceI])
100 masterPatchAddr[faceI],
104 masterPatchID_.index(),
106 masterFaceZoneID_.index(),
122 mesh.faceZones()[slaveFaceZoneID_.index()]();
125 mesh.faceZones()[slaveFaceZoneID_.index()];
128 mesh.faceZones()[slaveFaceZoneID_.index()].flipMap();
130 const labelList& slaveFc = slaveFaceCells();
137 forAll(slavePatchAddr, faceI)
140 face newFace = faces[slavePatchAddr[faceI]];
142 if (slavePatchFlip[faceI])
151 if (rpmIter != rpm.end())
158 newFace[pointI] = rpmIter();
167 slavePatchAddr[faceI],
171 slavePatchID_.index(),
173 slaveFaceZoneID_.index(),
182 const labelList& masterStickOuts = masterStickOutFaces();
184 forAll(masterStickOuts, faceI)
188 const label curFaceID = masterStickOuts[faceI];
190 const face& oldFace = faces[curFaceID];
194 bool changed =
false;
206 newFaceLabels.
append(oldFace[pointI]);
212 if (newFaceLabels.size() < 3)
215 <<
"Face " << curFaceID <<
" reduced to less than "
216 <<
"3 points. Topological/cutting error." <<
nl
217 <<
"Old face: " << oldFace <<
" new face: " << newFaceLabels
222 label modifiedFaceZone =
mesh.faceZones().whichZone(curFaceID);
223 bool modifiedFaceZoneFlip =
false;
225 if (modifiedFaceZone >= 0)
227 modifiedFaceZoneFlip =
228 mesh.faceZones()[modifiedFaceZone].flipMap()
230 mesh.faceZones()[modifiedFaceZone].whichFace(curFaceID)
252 mesh.boundaryMesh().whichPatch(curFaceID),
265 primitiveMesh::facesPerCell_*(masterPatch.size() + slavePatch.size())
278 mesh.faceZones().whichZone(curFaces[faceI])
279 != slaveFaceZoneID_.index()
284 slaveLayerCellFaceMap.
insert(curFaces[faceI]);
290 const labelList& slaveStickOuts = slaveStickOutFaces();
295 forAll(slaveStickOuts, faceI)
299 const label curFaceID = slaveStickOuts[faceI];
301 const face& oldFace = faces[curFaceID];
305 bool changed =
false;
310 if (rpm.found(oldFace[pointI]))
319 newFaceLabels.
append(rpm.find(oldFace[pointI])());
326 else if (masterPm.found(oldFace[pointI]))
333 newFaceLabels.
append(oldFace[pointI]);
339 if (newFaceLabels.size() < 3)
342 <<
"Face " << curFaceID <<
" reduced to less than "
343 <<
"3 points. Topological/cutting error." <<
nl
344 <<
"Old face: " << oldFace <<
" new face: " << newFaceLabels
349 label modifiedFaceZone =
mesh.faceZones().whichZone(curFaceID);
350 bool modifiedFaceZoneFlip =
false;
352 if (modifiedFaceZone >= 0)
354 modifiedFaceZoneFlip =
355 mesh.faceZones()[modifiedFaceZone].flipMap()
357 mesh.faceZones()[modifiedFaceZone].whichFace(curFaceID)
379 mesh.boundaryMesh().whichPatch(curFaceID),
392 mesh.faceZones()[slaveFaceZoneID_.index()]().meshPoints();
394 forAll(slaveMeshPoints, pointI)
400 slaveMeshPoints[pointI],
401 points[slaveMeshPoints[pointI]],
403 mesh.pointZones().whichZone(slaveMeshPoints[pointI]),
410 retiredPointMapPtr_->clear();
417 Pout<<
"void slidingInterface::coupleInterface("
418 <<
"polyTopoChange& ref) const : "
419 <<
"Finished decoupling sliding interface " <<
name() <<
endl;