1 int USERD_get_part_element_ids_by_type
10 Info << "Entering: USERD_get_part_element_ids_by_type" << endl
11 << "part_number = " << part_number << endl
12 << "element_type = " << element_type << endl << flush;
17 const cellShapeList& cellShapes = meshPtr->cellShapes();
18 const cellList& cells = meshPtr->cells();
20 label nCells = cells.size();
28 if (element_type == Z_HEX08)
30 for (label n=0; n<nCells; n++)
32 label nFaces = cells[n].size();
33 labelList points = cellShapes[n];
35 if ((nFaces == 6) && (points.size() == 8))
37 elemid_array[nHex08++] = n + 1;
41 else if (element_type == Z_PEN06)
43 for (label n=0; n<nCells; n++)
45 label nFaces = cells[n].size();
46 labelList points = cellShapes[n];
48 if ((nFaces == 5) && (points.size() == 6))
50 elemid_array[nPen06++] = n + 1;
54 else if (element_type == Z_PYR05)
56 for (label n=0; n<nCells; n++)
58 label nFaces = cells[n].size();
59 labelList points = cellShapes[n];
61 if ((nFaces == 5) && (points.size() == 5))
63 elemid_array[nPyr05++] = n + 1;
67 else if (element_type == Z_TET04)
69 for (label n=0; n<nCells; n++)
71 label nFaces = cells[n].size();
72 labelList points = cellShapes[n];
74 if ((nFaces == 4) && (points.size() == 4))
76 elemid_array[nTet04++] = n + 1;
80 else if (element_type == Z_NFACED)
82 for (label n=0; n<nCells; n++)
84 label nFaces = cells[n].size();
85 labelList points = cellShapes[n];
86 if ((nFaces == 6) && (points.size() == 8))
88 else if ((nFaces == 5) && (points.size() == 6))
90 else if ((nFaces == 5) && (points.size() == 5))
92 else if ((nFaces == 4) && (points.size() == 4))
96 elemid_array[nFaced++] = n + 1;
102 else if (part_number < nPatches+2)
105 const polyBoundaryMesh& bMesh = meshPtr->boundaryMesh();
106 label patchi = part_number - 2;
112 if (element_type == Z_TRI03)
114 forAll(bMesh[patchi], facei)
116 if (bMesh[patchi][facei].size() == 3)
118 elemid_array[nTri03++] = facei + 1;
122 else if (element_type == Z_QUA04)
124 forAll(bMesh[patchi], facei)
126 if (bMesh[patchi][facei].size() == 4)
128 elemid_array[nQuad04++] = facei + 1;
132 else if (element_type == Z_NSIDED)
134 forAll(bMesh[patchi], facei)
136 label nPoints = bMesh[patchi][facei].size();
137 if ((nPoints != 3) && (nPoints != 4))
139 elemid_array[nPoly++] = facei + 1;
145 else if (part_number == nPatches+2)
147 for (label n=0; n<sprayPtr->size(); n++)
149 elemid_array[n] = n + 1;
158 Info << "Leaving: USERD_get_part_element_ids_by_type" << endl << flush;