44 if (meshModPtr_.empty())
46 meshModPtr_.reset(
new polyTopoChange(mesh_));
54 Foam::repatchPolyTopoChanger::repatchPolyTopoChanger(
polyMesh&
mesh)
68 if (meshModPtr_.valid())
71 <<
"Cannot change patches after having changed faces. " <<
nl
72 <<
"Please call changePatches first."
76 mesh_.removeBoundary();
92 faceID >= mesh_.faces().size()
93 ||
patchID >= mesh_.boundaryMesh().size()
94 || mesh_.isInternalFace(faceID)
98 <<
" patchID: " <<
patchID <<
". "
99 <<
"Labels out of range or internal face."
104 const label zoneID = mesh_.faceZones().whichZone(faceID);
106 bool zoneFlip =
false;
119 mesh_.faces()[faceID],
121 mesh_.faceOwner()[faceID],
143 if (faceID > mesh_.faces().size())
155 mesh_.faces()[faceID],
157 mesh_.faceOwner()[faceID],
158 mesh_.faceNeighbour()[faceID],
160 mesh_.boundaryMesh().whichPatch(faceID),
178 if (faceID > mesh_.faces().size())
186 const face&
f = mesh_.faces()[faceID];
188 if ((fp < 0) || (fp >=
f.size()))
191 <<
"Error in definition. Face point: " << fp
192 <<
"indexes out of face " <<
f
196 label patchID = mesh_.boundaryMesh().whichPatch(faceID);
198 const label zoneID = mesh_.faceZones().whichZone(faceID);
200 bool zoneFlip =
false;
218 mesh_.faceOwner()[faceID],
232 face newFace(
f.size());
238 newFace[i] =
f[fVert++];
240 if (fVert ==
f.size())
253 mesh_.faceOwner()[faceID],
269 meshMod().changeMesh(mesh_,
false);