35 Foam::attachDetach::pointMatchMap()
const
37 if (!pointMatchMapPtr_)
42 return *pointMatchMapPtr_;
46 void Foam::attachDetach::calcPointMatchMap()
const
50 Pout<<
"void attachDetach::calcPointMatchMap() const "
51 <<
" for object " <<
name() <<
" : "
52 <<
"Calculating point matching" <<
endl;
55 if (pointMatchMapPtr_)
59 "void attachDetach::calcPointMatchMap() const"
60 ) <<
"Point match map already calculated for object " <<
name()
64 const polyMesh&
mesh = topoChanger().mesh();
65 const faceList& faces = mesh.faces();
67 const polyPatch& masterPatch = mesh.boundaryMesh()[masterPatchID_.index()];
68 const polyPatch& slavePatch = mesh.boundaryMesh()[slavePatchID_.index()];
77 const label slavePatchStart = slavePatch.start();
79 forAll (reverseSlavePatch, faceI)
81 reverseSlavePatch[faceI] =
82 faces[slavePatchStart + faceI].reverseFace();
86 const labelList& masterMeshPoints = masterPatch.meshPoints();
87 const labelList& slaveMeshPoints = reverseSlavePatch.meshPoints();
89 const faceList& masterLocalFaces = masterPatch.localFaces();
90 const faceList& slaveLocalFaces = reverseSlavePatch.localFaces();
92 pointMatchMapPtr_ =
new Map<label>(2*slaveMeshPoints.size());
93 Map<label>& removedPointMap = *pointMatchMapPtr_;
95 forAll (masterLocalFaces, faceI)
97 const face& curMasterPoints = masterLocalFaces[faceI];
98 const face& curSlavePoints = slaveLocalFaces[faceI];
100 forAll (curMasterPoints, pointI)
107 masterMeshPoints[curMasterPoints[pointI]]
108 != slaveMeshPoints[curSlavePoints[pointI]]
114 removedPointMap.insert
116 slaveMeshPoints[curSlavePoints[pointI]],
117 masterMeshPoints[curMasterPoints[pointI]]
125 Pout<<
"void attachDetach::calcPointMatchMap() const "
126 <<
" for object " <<
name() <<
" : "
127 <<
"Finished calculating point matching" <<
endl;