37 template<
class>
class FaceList,
51 Pout<<
"PrimitivePatch<Face, FaceList, PointField, PointType>::" 52 <<
"calcLocalPointOrder() : " 53 <<
"calculating local point order" 57 if (localPointOrderPtr_)
62 <<
"local point order already calculated" 66 const List<Face>& lf = localFaces();
70 boolList visitedFace(lf.size(),
false);
72 localPointOrderPtr_ =
new labelList(meshPoints().size(), -1);
74 labelList& pointOrder = *localPointOrderPtr_;
76 boolList visitedPoint(pointOrder.size(),
false);
82 if (!visitedFace[facei])
84 SLList<label> faceOrder(facei);
88 const label curFace = faceOrder.first();
90 faceOrder.removeHead();
92 if (!visitedFace[curFace])
94 visitedFace[curFace] =
true;
101 if (!visitedPoint[curPoints[pointi]])
103 visitedPoint[curPoints[pointi]] =
true;
105 pointOrder[
nPoints] = curPoints[pointi];
116 if (!visitedFace[nbrs[nbrI]])
118 faceOrder.append(nbrs[nbrI]);
122 }
while (faceOrder.size());
128 Pout<<
"PrimitivePatch<Face, FaceList, PointField, PointType>::" 129 <<
"calcLocalPointOrder() " 130 <<
"finished calculating local point order" List< labelList > labelListList
A List of labelList.
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Ostream & endl(Ostream &os)
Add newline and flush stream.
List< bool > boolList
Bool container classes.
A list of faces which address into the list of points.
List< label > labelList
A List of labels.
errorManip< error > abort(error &err)
prefixOSstream Pout(cout, "Pout")
Non-intrusive singly-linked list.