52#ifndef Foam_meshReader_H
53#define Foam_meshReader_H
90 const label&
cellId()
const
96 const label&
faceId()
const
125 mutable std::unique_ptr<labelListList> pointCellsPtr_;
143 meshReader(
const meshReader&) =
delete;
146 void operator=(
const meshReader&) =
delete;
149 void calcPointCells()
const;
154 void createPolyCells();
157 void addPolyBoundaryFace
160 const label cellFaceId,
161 const label nCreatedFaces
165 void addPolyBoundaryFace
168 const label nCreatedFaces
179 void createPolyBoundary();
186 void clearExtraStorage();
191 void writeMeshLabelList
194 const word& propertyName,
275 meshReader(
const fileName&,
const scalar scaling = 1.0);
A HashTable similar to std::unordered_map.
A simple container for options an IOstream can normally have.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const label & first() const noexcept
const label & second() const noexcept
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
The cellTable persistent data saved as a Map<dictionary>.
A class for handling file names.
cellFaceIdentifier(label c, label f)
Construct from cell/face components.
bool notUsed() const
Unused if either cell or face are negative.
const label & cellId() const
The cell id (readonly).
cellFaceIdentifier()
Construct null, as invalid pair.
bool used() const
Used if both cell or face are non-negative.
const label & faceId() const
The face id (readonly).
This class supports creating polyMeshes with baffles.
scalar scaleFactor_
Geometry scaling.
static void warnDuplicates(const word &context, const wordList &)
Warn about repeated names.
List< List< cellFaceIdentifier > > boundaryIds_
Identify boundary faces by cells and their faces.
wordList patchPhysicalTypes_
Boundary patch physical types.
faceList meshFaces_
Global face list for polyMesh.
wordList patchNames_
Boundary patch names.
void writeAux(const objectRegistry &) const
Write auxiliary information.
label nInternalFaces_
Number of internal faces for polyMesh.
cellTable cellTable_
Cell table persistent data saved as a dictionary.
virtual bool readGeometry(const scalar scaleFactor=1.0)=0
Subclasses are required to supply this information.
labelList cellTableId_
Cell table id for each cell.
labelList origCellId_
Lookup original Cell number for a given cell.
pointField points_
Points supporting the mesh.
void writeMesh(const polyMesh &, IOstreamOption streamOpt=IOstreamOption(IOstreamOption::BINARY)) const
Write mesh.
faceList baffleFaces_
List of each baffle face.
virtual ~meshReader()=default
Destructor.
faceListList cellFaces_
List of faces for every cell.
labelList patchStarts_
Polyhedral mesh boundary patch start indices and dimensions.
fileName geometryFile_
Referenced filename.
wordList patchTypes_
Boundary patch types.
Registry of regIOobjects.
Smooth ATC in cells having a point to a set of patches supplied by type.
Mesh consisting of general polyhedral cells.
A class for handling words, derived from Foam::string.
Pair< label > labelPair
A pair of labels.
PtrList< polyPatch > polyPatchList
Store lists of polyPatch as a PtrList.
List< word > wordList
List of word.
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
List< face > faceList
List of faces.
List< cell > cellList
List of cell.
List< faceList > faceListList
List of faceList.
vectorField pointField
pointField is a vectorField.
UList< label > labelUList
A UList of labels.