136 const cellShape& cellShape =
cellShapes[cellI];
137 const cellModel& cellModel = cellShape.model();
139 if (cellModel == tet)
141 tets[nTets++] = cellI;
143 else if (cellModel == pyr)
145 pyrs[nPyrs++] = cellI;
147 else if (cellModel == prism)
149 prisms[nPrisms++] = cellI;
151 else if (cellModel == wedge)
153 wedges[nWedges++] = cellI;
155 else if (cellModel ==
hex)
157 hexes[nHexes++] = cellI;
161 polys[nPolys++] = cellI;
167 prisms.setSize(nPrisms);
168 wedges.setSize(nWedges);
169 hexes.setSize(nHexes);
170 polys.setSize(nPolys);
208 tris.setSize(
p.size());
209 quads.setSize(
p.size());
210 polys.setSize(
p.size());
218 const face&
f =
p[faceI];
222 tris[nTris++] = faceI;
224 else if (
f.size() == 4)
226 quads[nQuads++] = faceI;
230 polys[nPolys++] = faceI;
235 quads.setSize(nQuads);
236 polys.setSize(nPolys);
256 reduce(nfp.nTris, sumOp<label>());
257 reduce(nfp.nQuads, sumOp<label>());
258 reduce(nfp.nPolys, sumOp<label>());
269 sort(faceZoneNamesAll);
272 forAll(faceZoneNamesAll, nameI)
274 const word& zoneName = faceZoneNamesAll[nameI];
294 isA<processorPolyPatch>(pp)
295 && !refCast<const processorPolyPatch>(pp).owner()
307 forAll(faceZoneNamesAll, zoneI)
309 const word& zoneName = faceZoneNamesAll[zoneI];
320 tris.setSize(fz.size());
321 quads.setSize(fz.size());
322 polys.setSize(fz.size());
328 label faceCounter = 0;
341 tris[nTris++] = faceCounter;
343 else if (
f.size() == 4)
345 quads[nQuads++] = faceCounter;
349 polys[nPolys++] = faceCounter;
357 quads.setSize(nQuads);
358 polys.setSize(nPolys);
362 forAll(faceZoneNamesAll, zoneI)
364 const word& zoneName = faceZoneNamesAll[zoneI];
383 reduce(nfp.nTris, sumOp<label>());
384 reduce(nfp.nQuads, sumOp<label>());
385 reduce(nfp.nPolys, sumOp<label>());
398 const bool noPatches,
403 const bool faceZones,
410 noPatches_(noPatches),
412 patchPatterns_(patchPatterns),
413 faceZones_(faceZones),
414 faceZonePatterns_(faceZonePatterns),
416 meshCellSets_(
mesh.nCells())
434 if (mesh_.isInternalFace(faceI))
440 res = boundaryFaceToBeIncluded_[faceI-mesh_.nInternalFaces()];
450 reduce(appI,maxOp<label>());
489 label offset = hexes.size();
496 const cellShape& cellPoints =
cellShapes[wedges[i]];
498 hexLabels[0] = cellPoints[0];
499 hexLabels[1] = cellPoints[1];
500 hexLabels[2] = cellPoints[0];
501 hexLabels[3] = cellPoints[2];
502 hexLabels[4] = cellPoints[3];
503 hexLabels[5] = cellPoints[4];
504 hexLabels[6] = cellPoints[6];
505 hexLabels[7] = cellPoints[5];
507 mcsl[i + offset] = cellShape(
hex, hexLabels);
518 ensightStream& ensightGeometryFile
524 if (ensightGeometryFile.ascii())
534 forAll(cellPoints, pointI)
536 temp[pointI] = cellPoints[pointI] + 1;
538 ensightGeometryFile.write(temp);
553 forAll(cellPoints, pointI)
555 temp[
n] = cellPoints[pointI] + 1;
559 ensightGeometryFile.write(temp);
569 ensightStream& ensightGeometryFile
574 ensightGeometryFile.write(cellFaces[polys[i]].size());
584 ensightStream& ensightGeometryFile
589 const labelList& cf = cellFaces[polys[i]];
593 ensightGeometryFile.write(faces[cf[faceI]].size());
605 ensightStream& ensightGeometryFile
610 const labelList& cf = cellFaces[polys[i]];
617 bool reverseOrder =
false;
618 if (
faceId >= faceOwner.size())
631 if (faceOwner[
faceId] != polys[i])
648 temp[np-1-pointI] =
f[pointI] + 1;
652 temp[pointI] =
f[pointI] + 1;
655 ensightGeometryFile.write(temp);
664 ensightStream& ensightGeometryFile
667 if (meshCellSets_.nPolys)
669 const cellList& cellFaces = mesh_.cells();
670 const labelList& faceOwner = mesh_.faceOwner();
681 ensightGeometryFile.write(
"nfaced");
682 ensightGeometryFile.write(meshCellSets_.nPolys);
714 toMaster<< meshCellSets_.polys << cellFaces;
722 writePolysNPointsPerFace
737 writePolysNPointsPerFace
749 toMaster<< meshCellSets_.polys << cellFaces << faces;
787 toMaster<< meshCellSets_.polys << cellFaces << faces << faceOwner;
798 ensightStream& ensightGeometryFile
805 ensightGeometryFile.write(key);
806 ensightGeometryFile.write(nPrims);
830 ensightStream& ensightGeometryFile
840 temp[pointI] = patchFace[pointI] + 1;
843 ensightGeometryFile.write(temp);
854 ensightStream& ensightGeometryFile
861 ensightGeometryFile.write(key);
862 ensightGeometryFile.write(nPrims);
875 writeFacePrims(
patchFaces, ensightGeometryFile);
881 toMaster<< UIndirectList<face>(
patchFaces, prims);
890 ensightStream& ensightGeometryFile
895 ensightGeometryFile.write(
patchFaces[i].size());
903 ensightStream& ensightGeometryFile
906 writeFacePrims(
patchFaces, ensightGeometryFile);
915 ensightStream& ensightGeometryFile
922 ensightGeometryFile.write(
"nsided");
923 ensightGeometryFile.write(nPrims);
929 writeNSidedNPointsPerFace
940 writeNSidedNPointsPerFace
950 toMaster<< UIndirectList<face>(
patchFaces, prims);
967 writeNSidedPoints(
patchFaces, ensightGeometryFile);
973 toMaster<< UIndirectList<face>(
patchFaces, prims);
981 const label ensightPartI,
982 const word& ensightPartName,
985 ensightStream& ensightGeometryFile
992 ensightGeometryFile.writePartHeader(ensightPartI);
993 ensightGeometryFile.write(ensightPartName.c_str());
994 ensightGeometryFile.write(
"coordinates");
995 ensightGeometryFile.write(
nPoints);
999 ensightGeometryFile.write(uniquePoints.component(d));
1004 ensightGeometryFile.write(patchPointsComponent);
1013 toMaster<< uniquePoints.component(d);
1021 const fileName& postProcPath,
1022 const word& prepend,
1025 Ostream& ensightCaseFile
1028 const Time& runTime = mesh_.time();
1032 word timeFile = prepend;
1036 timeFile +=
"0000.";
1044 fileName ensightGeometryFileName = timeFile +
"mesh";
1046 ensightStream* ensightGeometryFilePtr = NULL;
1051 ensightGeometryFilePtr =
new ensightBinaryStream
1053 postProcPath/ensightGeometryFileName,
1056 ensightGeometryFilePtr->write(
"C binary");
1060 ensightGeometryFilePtr =
new ensightAsciiStream
1062 postProcPath/ensightGeometryFileName,
1068 ensightStream& ensightGeometryFile = *ensightGeometryFilePtr;
1074 ensightGeometryFile.write(
"EnSight Geometry File");
1075 ensightGeometryFile.write(desc.c_str());
1076 ensightGeometryFile.write(
"node id assign");
1077 ensightGeometryFile.write(
"element id assign");
1080 if (patchNames_.empty())
1084 const pointField uniquePoints(mesh_.points(), uniquePointMap_);
1098 meshCellSets_.nHexesWedges,
1102 meshCellSets_.hexes,
1103 meshCellSets_.wedges,
1112 meshCellSets_.nPrisms,
1113 map(
cellShapes, meshCellSets_.prisms, pointToGlobal_),
1120 meshCellSets_.nPyrs,
1121 map(
cellShapes, meshCellSets_.pyrs, pointToGlobal_),
1128 meshCellSets_.nTets,
1129 map(
cellShapes, meshCellSets_.tets, pointToGlobal_),
1141 label ensightPatchI = patchPartOffset_;
1145 const word& patchName = allPatchNames_[
patchi];
1147 if (patchNames_.empty() || patchNames_.found(patchName))
1149 const nFacePrimitives& nfp = nPatchPrims_[patchName];
1151 if (nfp.nTris || nfp.nQuads || nfp.nPolys)
1153 const polyPatch&
p = mesh_.boundaryMesh()[
patchi];
1162 autoPtr<globalIndex> globalPointsPtr =
1163 mesh_.globalData().mergePoints
1168 uniqueMeshPointLabels
1171 pointField uniquePoints(mesh_.points(), uniqueMeshPointLabels);
1184 globalPointsPtr().size(),
1220 const word& faceZoneName = iter.key();
1222 label faceID = mesh_.faceZones().findZoneID(faceZoneName);
1224 const faceZone& fz = mesh_.faceZones()[faceID];
1226 const nFacePrimitives& nfp = nFaceZonePrims_[faceZoneName];
1228 if (nfp.nTris || nfp.nQuads || nfp.nPolys)
1230 const labelList& tris = faceZoneFaceSets_[faceID].tris;
1231 const labelList& quads = faceZoneFaceSets_[faceID].quads;
1232 const labelList& polys = faceZoneFaceSets_[faceID].polys;
1237 autoPtr<globalIndex> globalPointsPtr =
1238 mesh_.globalData().mergePoints
1241 fz().meshPointMap(),
1243 uniqueMeshPointLabels
1246 pointField uniquePoints(mesh_.points(), uniqueMeshPointLabels);
1250 faceList faceZoneFaces(fz().localFaces());
1254 label nMasterFaces = 0;
1258 if (faceToBeIncluded(fz[faceI]))
1265 faceList faceZoneMasterFaces(nMasterFaces);
1267 label currentFace = 0;
1271 if (faceToBeIncluded(fz[faceI]))
1273 faceZoneMasterFaces[currentFace] = faceZoneFaces[faceI];
1279 forAll(faceZoneMasterFaces, i)
1289 globalPointsPtr().size(),
1298 faceZoneMasterFaces,
1307 faceZoneMasterFaces,
1315 faceZoneMasterFaces,
1323 delete ensightGeometryFilePtr;