Go to the documentation of this file.
93 int main(
int argc,
char *argv[])
97 "Checks validity of a mesh"
106 "Skip checking the mesh topology"
111 "Include bounding box checks"
116 "Include extra topology checks"
121 "Write volFields with mesh quality parameters"
125 "writeAllSurfaceFields",
126 "Write surfaceFields with mesh quality parameters"
132 "Write volFields with selected mesh quality parameters"
137 "Read user-defined mesh quality criteria from system/meshQualityDict"
143 "Reconstruct and write all faceSets and cellSets in selected format"
152 const bool noTopology =
args.
found(
"noTopology");
153 const bool allGeometry =
args.
found(
"allGeometry");
154 const bool allTopology =
args.
found(
"allTopology");
155 const bool meshQuality =
args.
found(
"meshQuality");
158 const bool writeSets = surfaceFormat.size();
181 const bool writeFaceFields =
args.
found(
"writeAllSurfaceFields");
186 const wordHashSet badFields(selectedFields - allFields);
188 if (!badFields.empty())
191 <<
"Illegal field(s) " <<
flatOutput(badFields.sortedToc())
193 <<
"Valid fields are " <<
flatOutput(allFields.sortedToc())
199 selectedFields = allFields;
201 else if (writeFaceFields)
204 <<
"Option 'writeAllSurfaceFields' only valid in combination"
205 <<
" with 'writeFields' or 'writeAllFields'"
212 Info<<
"Disabling all topology checks." <<
nl <<
endl;
216 Info<<
"Enabling all (cell, face, edge, point) topology checks."
221 Info<<
"Enabling all geometry checks." <<
nl <<
endl;
225 Info<<
"Enabling user-defined geometry checks." <<
nl <<
endl;
229 Info<<
"Reconstructing and writing " << surfaceFormat
231 <<
" of all faceSets and cellSets." <<
nl <<
endl;
233 if (selectedFields.size())
235 Info<<
"Writing mesh quality as fields " << selectedFields <<
nl
303 label nFailedChecks = 0;
336 if (nFailedChecks == 0)
342 Info<<
"\nFailed " << nFailedChecks <<
" mesh checks.\n"
376 Info<<
"\nFailed " << nFailedChecks <<
" mesh checks.\n"
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
A class for handling words, derived from Foam::string.
T getOrDefault(const word &optName, const T &deflt) const
int system(const std::string &command, const bool bg=false)
static word timeName(const scalar t, const int precision=precision_)
static void addNote(const string ¬e)
Ostream & endl(Ostream &os)
label checkTopology(const polyMesh &mesh, const bool allTopology, const bool allGeometry, autoPtr< surfaceWriter > &surfWriter, const autoPtr< writer< scalar >> &setWriter)
A HashTable with keys but without contents that is similar to std::unordered_set.
virtual readUpdateState readUpdate()
Foam::PtrList< Foam::fvMesh > meshes(regionNames.size())
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
label checkGeometry(const polyMesh &mesh, const bool allGeometry, autoPtr< surfaceWriter > &surfWriter, const autoPtr< writer< scalar >> &setWriter)
label checkMeshQuality(const polyMesh &mesh, const dictionary &dict, autoPtr< surfaceWriter > &writer)
FlatOutput::OutputAdaptor< Container, Delimiters > flatOutput(const Container &obj, Delimiters delim)
errorManipArg< error, int > exit(error &err, const int errNo=1)
static void addBoolOption(const word &optName, const string &usage="", bool advanced=false)
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
#define FatalErrorInFunction
static void addOptions(const bool constant=true, const bool withZero=false)
static autoPtr< surfaceWriter > New(const word &writeType)
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
virtual void setTime(const Time &t)
void printMeshStats(const polyMesh &mesh, const bool allTopology)
List< T > getList(const label index) const
const globalMeshData & globalData() const
static instantList select0(Time &runTime, const argList &args)
static void addOption(const word &optName, const string ¶m="", const string &usage="", bool advanced=false)
Foam::argList args(argc, argv)
void writeFields(const fvMesh &mesh, const wordHashSet &selectedFields, const bool writeFaceFields)
bool found(const word &optName) const
static autoPtr< writer > New(const word &writeFormat)