From 02517e971abb279c593f2d3a97ddb9fbd94ec63e Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Sat, 23 May 2020 15:33:36 +0200 Subject: [PATCH] ENH: no implicit loading of controlDict libs for foamListRegions (#1713) ENH: eliminate duplicate input region types --- .../foamListRegions/foamListRegions.C | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/applications/utilities/miscellaneous/foamListRegions/foamListRegions.C b/applications/utilities/miscellaneous/foamListRegions/foamListRegions.C index e1b5dae54b..e2b7ec3f29 100644 --- a/applications/utilities/miscellaneous/foamListRegions/foamListRegions.C +++ b/applications/utilities/miscellaneous/foamListRegions/foamListRegions.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2017 OpenCFD Ltd. + Copyright (C) 2017-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -68,8 +68,14 @@ int main(int argc, char *argv[]) #include "setRootCase.H" - // As per "createTime.H", but quieter. - Time runTime(Time::controlDictName, args); + // Silent version of "createTime.H", without libraries + Time runTime + ( + Time::controlDictName, + args, + false, // no enableFunctionObjects + false // no enableLibs + ); regionProperties rp(runTime); @@ -78,24 +84,32 @@ int main(int argc, char *argv[]) if (args.size() > 1) { - regionTypes.setSize(args.size()-1); + regionTypes.resize(args.size()-1); + + // No duplicates + wordHashSet uniq; label nTypes = 0; for (label argi = 1; argi < args.size(); ++argi) { regionTypes[nTypes] = args[argi]; - if (rp.found(regionTypes[nTypes])) + const word& regType = regionTypes[nTypes]; + + if (uniq.insert(regType)) { - ++nTypes; - } - else - { - std::cerr<< "No region-type: " << regionTypes[nTypes] << nl; + if (rp.found(regType)) + { + ++nTypes; + } + else + { + InfoErr<< "No region-type: " << regType << nl; + } } } - regionTypes.setSize(nTypes); + regionTypes.resize(nTypes); } else {