checkMeshQuality.C
Go to the documentation of this file.
1 #include "checkMeshQuality.H"
2 #include "polyMesh.H"
3 #include "cellSet.H"
4 #include "faceSet.H"
5 #include "motionSmoother.H"
6 #include "surfaceWriter.H"
7 #include "checkTools.H"
8 
10 (
11  const polyMesh& mesh,
12  const dictionary& dict,
13  const autoPtr<surfaceWriter>& writer
14 )
15 {
16  label noFailedChecks = 0;
17 
18  {
19  faceSet faces(mesh, "meshQualityFaces", mesh.nFaces()/100+1);
20  motionSmoother::checkMesh(false, mesh, dict, faces);
21 
22  label nFaces = returnReduce(faces.size(), sumOp<label>());
23 
24  if (nFaces > 0)
25  {
26  noFailedChecks++;
27 
28  Info<< " <<Writing " << nFaces
29  << " faces in error to set " << faces.name() << endl;
30  faces.instance() = mesh.pointsInstance();
31  faces.write();
32  if (writer.valid())
33  {
34  mergeAndWrite(writer(), faces);
35  }
36  }
37  }
38 
39  return noFailedChecks;
40 }
virtual Ostream & write(const char)=0
Write character.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:251
label checkMeshQuality(const polyMesh &, const dictionary &, const autoPtr< surfaceWriter > &)
void mergeAndWrite(const polyMesh &mesh, const surfaceWriter &writer, const word &name, const indirectPrimitivePatch setPatch, const fileName &outputDir)
Generate merged surface on master and write. Needs input patch.
messageStream Info
T returnReduce(const T &Value, const BinaryOp &bop, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)