49 const bool transformIntoPlane
56 std::map<label, labelledPoint> localData;
59 std::map<label, LongList<refLabelledPoint> > exchangeData;
62 const labelList& bPoints = surfaceEngine_.boundaryPoints();
63 const VRWGraph& pPoints = surfaceEngine_.pointPoints();
64 const vectorField& pNormals = surfaceEngine_.pointNormals();
66 surfaceEngine_.globalBoundaryPointLabel();
67 const VRWGraph& bpAtProcs = surfaceEngine_.bpAtProcs();
69 surfaceEngine_.globalToLocalBndPointAddressing();
74 const label bpI = nodesToSmooth[pI];
76 if( vertexType_[bpI] & LOCKED )
79 if(
magSqr(pNormals[bpI]) < VSMALL )
82 const plane pl(
points[bPoints[bpI]], pNormals[bpI]);
90 const label nei = pPoints(bpI, ppI);
97 const label procJ = bpAtProcs(nei, procI);
113 const label neiProc = bpAtProcs(bpI, procI);
117 if( exchangeData.find(neiProc) == exchangeData.end() )
148 const label bpI = nodesToSmooth[pI];
150 if( localData.find(bpI) == localData.end() )
169 const bool transformIntoPlane
176 std::map<label, labelledPoint> localData;
179 std::map<label, LongList<refLabelledPoint> > exchangeData;
182 const labelList& bPoints = surfaceEngine_.boundaryPoints();
184 const vectorField& faceCentres = surfaceEngine_.faceCentres();
185 const vectorField& pNormals = surfaceEngine_.pointNormals();
188 surfaceEngine_.globalBoundaryPointLabel();
189 const VRWGraph& bpAtProcs = surfaceEngine_.bpAtProcs();
191 surfaceEngine_.globalToLocalBndPointAddressing();
196 const label bpI = nodesToSmooth[pI];
198 if( vertexType_[bpI] & LOCKED )
201 if(
magSqr(pNormals[bpI]) < VSMALL )
204 const plane pl(
points[bPoints[bpI]], pNormals[bpI]);
219 const label neiProc = bpAtProcs(bpI, procI);
223 if( exchangeData.find(neiProc) == exchangeData.end() )
255 # pragma omp parallel for schedule(dynamic, 20)
259 const label bpI = nodesToSmooth[pI];
261 if( localData.find(bpI) == localData.end() )
263 newPositions[pI] =
points[bPoints[bpI]];
271 newPositions[pI] = newP;
276 # pragma omp parallel for schedule(dynamic, 20)
293 std::map<label, DynList<labelledPoint, 2> > mPts;
297 surfaceEngine_.globalBoundaryPointLabel();
305 globalPointLabel[nodesToSmooth[nI]],
313 const labelList& bPoints = surfaceEngine_.boundaryPoints();
314 const edgeList& edges = surfaceEngine_.edges();
315 const VRWGraph& bpEdges = surfaceEngine_.boundaryPointEdges();
316 const labelList& bp = surfaceEngine_.bp();
320 const label bpI = nodesToSmooth[nI];
322 if( vertexType_[bpI] & LOCKED)
329 const edge&
e = edges[bpEdges(bpI, epI)];
330 const label pI = bp[
e.otherVertex(bPoints[bpI])];
331 if( vertexType_[pI] & (EDGE+CORNER) )
343 const VRWGraph& bpAtProcs = surfaceEngine_.bpAtProcs();
345 std::map<label, LongList<refLabelledPoint> > mProcs;
348 const label neiProc = neiProcs[procI];
358 const label bpI = nodesToSmooth[nI];
361 mPts[globalPointLabel[bpI]];
365 const label neiProc = bpAtProcs(bpI, procI);
397 # pragma omp parallel for schedule(dynamic, 20)
401 const label bpI = nodesToSmooth[pI];
406 newP += nPts[ppI].coordinates();
408 if( nPts.
size() == 2 )
411 newPositions[pI] = newP;
415 newPositions[pI] =
points[bPoints[bpI]];
420 # pragma omp parallel for schedule(dynamic, 20)