diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C index 652a9c21ed057a2345deef0ad3f393c961f96a57..26aa2582216eedad39e54a3a21987ec8a48ce1a6 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C @@ -61,7 +61,7 @@ Usage - \par -patches patch or patch list Specify particular patches to write. - - \par -faceZones patch or zone list + - \par -faceZones zone or zone list Specify faceZones to write, with wildcards - \par -cellZone zoneName diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/convertSurfaceFields.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/convertSurfaceFields.H index cc5e02a793579e5142f897245b1e2fc675cca0db..75c7fb171e8fd35159124548faa83179201e6110 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/convertSurfaceFields.H +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/convertSurfaceFields.H @@ -149,7 +149,7 @@ Description // Write faceZones (POLYDATA file, one for each zone) - if (doFaceZones && !mesh.faceZones().empty()) + if (!selectedFaceZones.empty() && !mesh.faceZones().empty()) { if (nSurfaceScalarField == -1) { @@ -187,6 +187,11 @@ Description for (const faceZone& fz : mesh.faceZones()) { + if (!selectedFaceZones.match(fz.name())) + { + continue; + } + indirectPrimitivePatch pp ( IndirectList<face>(mesh.faces(), fz), diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C index ce456db48defc7e9930b55ab354285a715efc4ef..dd37ad5c1b5c5bfa76e9b034651b17387f17f88c 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C @@ -70,6 +70,10 @@ Usage - \par -pointSet \<name\> Restrict conversion to the faceSet or pointSet. + - \par -faceZones zone or zone list + Specify single faceZone or or multiple faceZones (name or regex) + to write + - \par -nearCellValue Output cell value on patches instead of patch value itself @@ -85,9 +89,6 @@ Usage - \par -no-point-data Suppress conversion of pointFields. No interpolated PointData. - - \par -noFaceZones - Suppress conversion of surface fields on faceZones - - \par -poly-decomp Decompose polyhedral cells into tets/pyramids @@ -308,6 +309,13 @@ int main(int argc, char *argv[]) "Convert specified pointSet only", true // mark as an advanced option ); + argList::addOption + ( + "faceZones", + "wordRes", + "Specify single or multiple faceZones to write\n" + "Eg, 'cells' or '( slice \"mfp-.*\" )'." + ); argList::addOption ( @@ -397,12 +405,10 @@ int main(int argc, char *argv[]) " Eg, 'outlet' or '( inlet \".*Wall\" )'", true // mark as an advanced option ); - - argList::addBoolOption + argList::ignoreOptionCompat ( - "noFaceZones", - "Suppress conversion of surface fields on faceZones", - true // mark as an advanced option + {"noFaceZones", 1806}, // faceZones are only enabled on demand + false // bool option, no argument ); argList::ignoreOptionCompat ( @@ -435,7 +441,6 @@ int main(int argc, char *argv[]) const bool doFiniteArea = args.found("finiteAreaFields"); const bool doSurfaceFields = args.found("surfaceFields"); - const bool doFaceZones = !args.found("noFaceZones") && doInternal; const bool oneBoundary = args.found("one-boundary") && doBoundary; const bool nearCellValue = args.found("nearCellValue") && doBoundary; const bool allRegions = args.found("allRegions"); @@ -471,10 +476,14 @@ int main(int argc, char *argv[]) } } + // Can be specified as empty (ie, no fields) wordRes selectedFields; const bool useFieldFilter = args.readListIfPresent<wordRe>("fields", selectedFields); + // Non-mandatory + const wordRes selectedFaceZones(args.getList<wordRe>("faceZones", false)); + #include "createTime.H" instantList timeDirs = timeSelector::select0(runTime, args); diff --git a/etc/config.sh/completion_cache b/etc/config.sh/completion_cache index 3d0553007e24845a05edf2705bd6949ce7bb20cb..09d59664c352b7cbe41b87ae5c40e4f3c367683e 100644 --- a/etc/config.sh/completion_cache +++ b/etc/config.sh/completion_cache @@ -96,7 +96,7 @@ _of_complete_cache_[foamToGMV]="-case -decomposeParDict -fileHandler | -listFunc _of_complete_cache_[foamToStarMesh]="-case -fileHandler -scale -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noBnd -noFunctionObjects -noZero -doc -doc-source -help" _of_complete_cache_[foamToSurface]="-case -fileHandler -scale -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -noZero -tri -doc -doc-source -help" _of_complete_cache_[foamToTetDualMesh]="-case -decomposeParDict -fileHandler -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listScalarBCs -listSwitches -listUnsetSwitches -listVectorBCs -noFunctionObjects -noZero -overwrite -parallel -doc -doc-source -help" -_of_complete_cache_[foamToVTK]="-case -cellSet -cellZone -decomposeParDict -excludePatches -faceSet -fields -fileHandler -name -patches -pointSet -region -regions -time | -allRegions -ascii -constant -finiteAreaFields -latestTime -legacy -listFunctionObjects -listRegisteredSwitches -listScalarBCs -listSwitches -listUnsetSwitches -listVectorBCs -nearCellValue -no-boundary -no-internal -no-lagrangian -no-point-data -noFaceZones -noFunctionObjects -noZero -one-boundary -overwrite -parallel -poly-decomp -surfaceFields -doc -doc-source -help" +_of_complete_cache_[foamToVTK]="-case -cellSet -cellZone -decomposeParDict -excludePatches -faceSet -faceZones -fields -fileHandler -name -patches -pointSet -region -regions -time | -allRegions -ascii -constant -finiteAreaFields -latestTime -legacy -listFunctionObjects -listRegisteredSwitches -listScalarBCs -listSwitches -listUnsetSwitches -listVectorBCs -nearCellValue -no-boundary -no-internal -no-lagrangian -no-point-data -noFunctionObjects -noZero -one-boundary -overwrite -parallel -poly-decomp -surfaceFields -doc -doc-source -help" _of_complete_cache_[foamUpgradeCyclics]="-case -decomposeParDict -fileHandler -region -time | -constant -dry-run -enableFunctionEntries -latestTime -listFunctionObjects -listRegisteredSwitches -listScalarBCs -listSwitches -listUnsetSwitches -listVectorBCs -noFunctionObjects -noZero -parallel -doc -doc-source -help" _of_complete_cache_[foamyHexMesh]="-case -decomposeParDict -fileHandler | -checkGeometry -conformationOnly -listFunctionObjects -listRegisteredSwitches -listScalarBCs -listSwitches -listUnsetSwitches -listVectorBCs -parallel -doc -doc-source -help" _of_complete_cache_[foamyQuadMesh]="-case -fileHandler -pointsFile | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -doc -doc-source -help"