Go to the documentation of this file.
37 const label cellTableId
41 <<
' ' << starcdShellShape_
44 <<
' ' << starcdShellType_;
55 os <<
' ' <<
f[fp] + 1;
82 const bool mustTriangulate = this->isTri();
94 cellTableLookup = readInpCellTable(is);
106 this->storedPoints(),
114 mapPointId.insert(pointId[i], i);
125 <<
"Cannot read file " << is.
name()
129 readHeader(is,
"PROSTAR_CELL");
141 label lineLabel, shapeId, nLabels, cellTableId, typeId;
144 while ((is >> lineLabel).good())
146 is >> shapeId >> nLabels >> cellTableId >> typeId;
148 vertexLabels.
clear();
152 for (
label i = 0; i < nLabels; ++i)
162 vertexLabels.
append(mapPointId[vrtId]);
165 if (typeId == starcdShellType_)
180 zoneI = dynSizes.size();
181 lookup.insert(cellTableId, zoneI);
184 cellTableLookup.find(cellTableId);
186 if (tableNameIter == cellTableLookup.end())
195 dynNames.
append(tableNameIter());
202 if (mustTriangulate && nLabels > 3)
208 f.triangles(this->
points(), nTri, triFaces);
226 dynFaces.
append(Face(vertices));
234 this->sortFacesAndStore(dynFaces.
xfer(), dynZones.
xfer(), sorted);
237 this->addZones(dynSizes, dynNames,
true);
256 ? surfaceFormatsCore::oneZone(faceLst)
265 writePoints(
OFstream(baseName +
".vrt")(), pointLst);
267 writeHeader(os,
"CELL");
278 const Face&
f = faceLst[
faceMap[faceIndex++]];
279 writeShell(os,
f, faceIndex, zoneI + 1);
286 const Face&
f = faceLst[faceIndex++];
287 writeShell(os,
f, faceIndex, zoneI + 1);
Xfer< List< T > > xfer()
Transfer contents to the Xfer container as a plain List.
const fileName & name() const
Return the name of the stream.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
A class for handling words, derived from string.
A class for handling file names.
#define forAll(list, i)
Loop across all elements in list.
bool useFaceMap() const
Use faceMap?
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
bool read(const char *, int32_t &)
A List obtained as a section of another List.
const List< Face > & faces() const
Return const access to the faces.
An STL-conforming const_iterator.
A HashTable to objects of type <T> with a label key.
const pointField & points() const
Return const access to the points.
const List< surfZone > & surfZones() const
Const access to the surface zones.
Ostream & endl(Ostream &os)
Add newline and flush stream.
fileName lessExt() const
Return file name without extension (part before last .)
A proxy for writing MeshedSurface, UnsortedMeshedSurface and surfMesh to various file formats.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
void clear()
Clear the addressed list, i.e. set the size to zero.
DynamicList< T, SizeInc, SizeMult, SizeDiv > & append(const T &)
Append an element at the end of the list.
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
A triangular face using a FixedList of labels corresponding to mesh vertices.
A surface zone on a MeshedSurface.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
void clear()
Clear the list, i.e. set size to zero.
void reserve(const label)
Reserve allocation space for at least this size.
A face is a list of labels corresponding to mesh vertices.
Various functions to operate on Lists.
void size(const label)
Override size to be inconsistent with allocated storage.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
bool good() const
Return true if next operation might succeed.
word name(const complex &)
Return a string representation of a complex.
const List< label > & faceMap() const
Const access to the faceMap, zero-sized when unused.
stressControl lookup("compactNormalStress") >> compactNormalStress