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 
9 Foam::label Foam::checkMeshQuality
10 (
11  const polyMesh& mesh,
12  const dictionary& dict,
13  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 
33  if (writer)
34  {
35  mergeAndWrite(*writer, faces);
36  }
37  }
38  }
39 
40  return noFailedChecks;
41 }
Foam::returnReduce
T returnReduce(const T &Value, const BinaryOp &bop, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)
Definition: PstreamReduceOps.H:88
motionSmoother.H
Foam::endl
Ostream & endl(Ostream &os)
Definition: Ostream.H:381
surfaceWriter.H
polyMesh.H
Foam::Info
messageStream Info
faceSet.H
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::checkMeshQuality
label checkMeshQuality(const polyMesh &mesh, const dictionary &dict, autoPtr< surfaceWriter > &writer)
mesh
dynamicFvMesh & mesh
Definition: createDynamicFvMesh.H:6
Foam::mergeAndWrite
void mergeAndWrite(const polyMesh &mesh, surfaceWriter &writer, const word &name, const indirectPrimitivePatch &setPatch, const fileName &outputDir)
cellSet.H
checkMeshQuality.H
writer
vtk::internalMeshWriter writer(topoMesh, topoCells, vtk::formatType::INLINE_ASCII, runTime.path()/"blockTopology")
checkTools.H