Go to the documentation of this file.
44 label nBoundaryFaces = 0;
47 nBoundaryFaces +=
cells[celli].nFaces();
52 label nDefinedBoundaryFaces = 0;
62 <<
tab <<
tab <<
"Number of internal faces : "
64 <<
tab <<
tab <<
"Number of boundary faces : "
65 << nBoundaryFaces <<
nl
66 <<
tab <<
tab <<
"Number of defined boundary faces : "
67 << nDefinedBoundaryFaces <<
nl
68 <<
tab <<
tab <<
"Number of undefined boundary faces : "
69 << nBoundaryFaces - nDefinedBoundaryFaces <<
nl;
71 if ((nBoundaryFaces - nDefinedBoundaryFaces) > 0)
74 <<
"(Warning : only leave undefined the front and back planes "
75 <<
"of 2D planar geometries!)" <<
endl;
78 Info<<
tab <<
"Checking patch -> block consistency" <<
endl;
88 const face& patchFace = Patch[patchFacei];
89 bool patchFaceOK =
false;
95 forAll(cellFaces, cellFacei)
97 if (patchFace == faces[cellFaces[cellFacei]])
105 & faces[cellFaces[cellFacei]].normal(
points)
110 <<
"Face " << patchFacei
125 <<
"Face " << patchFacei
128 <<
" does not match any block faces" <<
endl;
143 <<
"Block mesh topology incorrect, stopping mesh generation!"
151 const label blockLabel,
158 forAll(blockShape, blockI)
160 if (blockShape[blockI] < 0)
165 <<
"out-of-range point label " << blockShape[blockI]
167 <<
") in block " << blockLabel <<
endl;
169 else if (blockShape[blockI] >=
points.size())
174 <<
"out-of-range point label " << blockShape[blockI]
175 <<
" (max = " <<
points.size() - 1
176 <<
") in block " << blockLabel <<
endl;
186 const label patchLabel,
204 <<
"out-of-range point label " <<
f[fp]
206 <<
") on patch " << patchLabel
207 <<
", face " << faceI <<
endl;
209 else if (
f[fp] >=
points.size())
214 <<
"out-of-range point label " <<
f[fp]
215 <<
" (max = " <<
points.size() - 1
216 <<
") on patch " << patchLabel
217 <<
", face " << faceI <<
endl;
vector normal(const pointField &) const
Vector normal; magnitude is equal to area of face.
virtual const pointField & points() const
Return raw points.
const faceListList & patches() const
Return the patch face lists.
#define forAll(list, i)
Loop across all elements in list.
void checkBlockMesh(const polyMesh &) const
const cellList & cells() const
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
Ostream & endl(Ostream &os)
Add newline and flush stream.
labelList patchFaces(const polyBoundaryMesh &patches, const wordList &names)
Mesh consisting of general polyhedral cells.
bool blockLabelsOK(const label blockLabel, const pointField &points, const cellShape &blockShape) const
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.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
label nInternalFaces() const
An analytical geometric cellShape.
errorManipArg< error, int > exit(error &err, const int errNo=1)
virtual const faceList & faces() const
Return raw faces.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const pointField & points() const
The points for the entire mesh.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A face is a list of labels corresponding to mesh vertices.
void size(const label)
Override size to be inconsistent with allocated storage.
const cellShapeList & cells() const
Return cell shapes list.
#define WarningInFunction
Report a warning using Foam::Warning.
static bool verboseOutput
Switch for verbose output.
bool patchLabelsOK(const label patchLabel, const pointField &points, const faceList &patchShapes) const