Loading...
Searching...
No Matches
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 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}
vtk::lineWriter writer(edgeCentres, edgeList::null(), fileName(aMesh.time().globalPath()/(vtkBaseFileName+"-edgesCentres")))
dynamicFvMesh & mesh
return returnReduce(nRefine-oldNRefine, sumOp< label >())
label checkMeshQuality(const polyMesh &mesh, const dictionary &dict, autoPtr< surfaceWriter > &writer)
messageStream Info
Information stream (stdout output on master, null elsewhere).
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition Ostream.H:519
void mergeAndWrite(const polyMesh &mesh, surfaceWriter &writer, const word &name, const indirectPrimitivePatch &setPatch, const fileName &outputDir)
Generate merged surface on master and write. Needs input patch.
dictionary dict