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" label checkTopology(const polyMesh &mesh, const bool allTopology, const bool allGeometry, autoPtr< surfaceWriter > &surfWriter, autoPtr< coordSetWriter > &setWriter)
static void addNote(const string ¬e)
Add extra notes for the usage information.
errorManipArg< error, int > exit(error &err, const int errNo=1)
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
constexpr char nl
The newline '\n' character (0x0a)
Ostream & endl(Ostream &os)
Add newline and flush stream.
List< T > getList(const label index) const
Get a List of values from the argument at index.
static void addBoolOption(const word &optName, const string &usage="", bool advanced=false)
Add a bool option to validOptions with usage information.
label size() const noexcept
The number of elements in table.
Ignore writing from objectRegistry::writeObject()
T getOrDefault(const word &optName, const T &deflt) const
Get a value from the named option if present, or return default.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
#define forAll(list, i)
Loop across all elements in list.
static autoPtr< coordSetWriter > New(const word &writeFormat)
Return a reference to the selected writer.
virtual readUpdateState readUpdate()
Update the mesh based on the mesh files saved in time.
A class for handling words, derived from Foam::string.
label size() const noexcept
The number of elements in the list.
Foam::PtrList< Foam::fvMesh > meshes(regionNames.size())
static void addOption(const word &optName, const string ¶m="", const string &usage="", bool advanced=false)
Add an option to validOptions with usage information.
const globalMeshData & globalData() const
Return parallel info.
virtual void setTime(const Time &t)
Reset the time and time-index to those of the given time.
void writeFields(const fvMesh &mesh, const wordHashSet &selectedFields, const bool writeFaceFields)
static word timeName(const scalar t, const int precision=precision_)
Return time name of given scalar time formatted with the given precision.
static instantList select0(Time &runTime, const argList &args)
Return the set of times selected based on the argList options and also set the runTime to the first i...
label checkMeshQuality(const polyMesh &mesh, const dictionary &dict, autoPtr< surfaceWriter > &writer)
void printMeshStats(const polyMesh &mesh, const bool allTopology)
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
messageStream Info
Information stream (stdout output on master, null elsewhere)
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
readUpdateState
Enumeration defining the state of the mesh after a read update.
int system(const std::string &command, const bool bg=false)
Execute the specified command via the shell.
Foam::argList args(argc, argv)
Defines the attributes of an object for which implicit objectRegistry management is supported...
static autoPtr< surfaceWriter > New(const word &writeType)
Return a reference to the selected surfaceWriter.
bool found(const word &optName) const
Return true if the named option is found.
static void addOptions(const bool constant=true, const bool withZero=false)
Add timeSelector options to argList::validOptions.
FlatOutput::OutputAdaptor< Container, Delimiters > flatOutput(const Container &obj, Delimiters delim)
Global flatOutput() function with specified output delimiters.
label checkGeometry(const polyMesh &mesh, const bool allGeometry, autoPtr< surfaceWriter > &surfWriter, autoPtr< coordSetWriter > &setWriter)