28 #include "primitiveMesh.H"
39 const label vertPerCell,
40 const label facePerCell,
41 const label maxVertPerFace,
42 const word& cellModelName
46 localFaces_(facePerCell),
47 faceSize_(facePerCell, -1),
48 pointMap_(vertPerCell),
49 faceMap_(facePerCell),
50 edgeFaces_(2*vertPerCell*vertPerCell),
51 pointFaceIndex_(vertPerCell),
52 vertLabels_(vertPerCell),
53 faceLabels_(facePerCell),
54 cellModelName_(cellModelName),
59 face&
f = localFaces_[faceI];
61 f.setSize(maxVertPerFace);
64 forAll(pointFaceIndex_, vertI)
66 pointFaceIndex_[vertI].setSize(facePerCell);
87 label faceI = myFaces[myFaceI];
89 const face&
f = faces[faceI];
90 face& localFace = localFaces_[myFaceI];
93 faceSize_[myFaceI] =
f.size();
97 label vertI =
f[localVertI];
100 if (iter == localPoint_.end())
104 if (newVertI >= pointMap_.size())
110 localFace[localVertI] = newVertI;
111 localPoint_.insert(vertI, newVertI);
117 localFace[localVertI] = *iter;
122 faceMap_[myFaceI] = faceI;
128 const label fp = iter();
129 pointMap_[fp] = iter.key();
157 label start =
f[prevVertI];
178 <<
"edgeFaces_ full at entry:" << key1
179 <<
" for edge " << start <<
" " << end
193 forAll(pointFaceIndex_, i)
195 labelList& faceIndices = pointFaceIndex_[i];
200 forAll(localFaces_, localFaceI)
202 const face&
f = localFaces_[localFaceI];
207 fp < faceSize_[localFaceI];
212 pointFaceIndex_[vert][localFaceI] = fp;
224 const label localFaceI
227 label key = edgeKey(numVert, v0, v1);
229 if (edgeFaces_[key] == localFaceI)
231 return edgeFaces_[key+1];
233 else if (edgeFaces_[key+1] == localFaceI)
235 return edgeFaces_[key];
240 <<
"edgeFaces_ does not contain:" << localFaceI
241 <<
" for edge " << v0 <<
" " << v1 <<
" at key " << key
242 <<
" edgeFaces_[key, key+1]:" << edgeFaces_[key]
243 <<
" , " << edgeFaces_[key+1]
253 os <<
"Faces:" <<
endl;
255 forAll(localFaces_, faceI)
259 for (
label fp = 0; fp < faceSize_[faceI]; fp++)
261 os <<
' ' << localFaces_[faceI][fp];
266 os <<
"Face map : " << faceMap_ <<
endl;
267 os <<
"Point map : " << pointMap_ <<
endl;