ENH: checkMesh: improved checking on writeFields. Fixes #1786.

This commit is contained in:
mattijs
2020-07-23 17:25:44 +01:00
parent d3c76d8ec8
commit bcda061f54

View File

@ -142,15 +142,9 @@ int main(int argc, char *argv[])
const word surfaceFormat = args.getOrDefault<word>("writeSets", ""); const word surfaceFormat = args.getOrDefault<word>("writeSets", "");
const bool writeSets = surfaceFormat.size(); const bool writeSets = surfaceFormat.size();
wordHashSet selectedFields;
bool writeFields = args.readIfPresent // All potential writeable fields
( const wordHashSet allFields
"writeFields",
selectedFields
);
if (!writeFields && args.found("writeAllFields"))
{
selectedFields.insert
({ ({
"nonOrthoAngle", "nonOrthoAngle",
"faceWeight", "faceWeight",
@ -167,6 +161,26 @@ int main(int argc, char *argv[])
"cellZone", "cellZone",
"faceZone" "faceZone"
}); });
wordHashSet selectedFields;
if (args.found("writeFields"))
{
selectedFields = args.getList<word>("writeFields");
wordHashSet badFields(selectedFields);
badFields -= allFields;
if (!badFields.empty())
{
FatalErrorInFunction
<< "Illegal field(s) " << flatOutput(badFields.sortedToc())
<< nl
<< "Valid fields are " << flatOutput(allFields.sortedToc())
<< nl << exit(FatalError);
}
}
else if (args.found("writeAllFields"))
{
selectedFields = allFields;
} }