diff --git a/applications/utilities/finiteArea/makeFaMesh/makeFaMesh.C b/applications/utilities/finiteArea/makeFaMesh/makeFaMesh.C index 87f803c57b85acf6a9d04e313c9d8f67f7038549..fab99d7f2a21e2789cab37be5b5d01feea75b644 100644 --- a/applications/utilities/finiteArea/makeFaMesh/makeFaMesh.C +++ b/applications/utilities/finiteArea/makeFaMesh/makeFaMesh.C @@ -319,9 +319,9 @@ int main(int argc, char *argv[]) } } - if (args.optionFound("addEmptyPatch")) + word emptyPatchName; + if (args.optionReadIfPresent("addEmptyPatch", emptyPatchName)) { - word emptyPatchName(args.optionLookup("addEmptyPatch")()); dictionary emptyPatchDict; emptyPatchDict.add("type", "empty"); emptyPatchDict.add("edgeLabels", labelList()); diff --git a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C index c6ef4bd6ff984fece6aba079b4848b77f49c1327..52215a5aec9e3b07e66b14195b493e3cdbebd501 100644 --- a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C +++ b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C @@ -498,7 +498,7 @@ int main(int argc, char *argv[]) } - fileName regionPrefix = ""; + fileName regionPrefix; if (regionName != fvMesh::defaultRegion) { regionPrefix = regionName; @@ -520,8 +520,7 @@ int main(int argc, char *argv[]) if (args.optionFound("subDict")) { - word subDictName(args.optionLookup("subDict")()); - replaceDictsPtr = &dict.subDict(subDictName); + replaceDictsPtr = &dict.subDict(args["subDict"]); } const dictionary& replaceDicts = *replaceDictsPtr; diff --git a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C index bb1d7c7e9bfc3df6a2e672e599f595a2e27dbfbd..824f24db01d25c605d5251ed297884cf6a08db85 100644 --- a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C +++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2015-2017 OpenCFD Ltd. + \\/ M anipulation | Copyright (C) 2015-2018 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -85,7 +85,7 @@ Foam::functionObject* Foam::functionObjectList::remove oldIndex = fnd(); // Retrieve the pointer and remove it from the old list - ptr = this->set(oldIndex, 0).ptr(); + ptr = this->set(oldIndex, nullptr).ptr(); indices_.erase(fnd); } else @@ -106,11 +106,11 @@ void Foam::functionObjectList::listDir // Search specified directory for functionObject configuration files { fileNameList foFiles(fileHandler().readDir(dir)); - forAll(foFiles, f) + for (const fileName& f : foFiles) { - if (foFiles[f].ext().empty()) + if (f.ext().empty()) { - foMap.insert(foFiles[f]); + foMap.insert(f); } } } @@ -118,9 +118,9 @@ void Foam::functionObjectList::listDir // Recurse into sub-directories { fileNameList foDirs(fileHandler().readDir(dir, fileName::DIRECTORY)); - forAll(foDirs, fd) + for (const fileName& d : foDirs) { - listDir(dir/foDirs[fd], foMap); + listDir(dir/d, foMap); } } } @@ -132,9 +132,9 @@ void Foam::functionObjectList::list() fileNameList etcDirs(findEtcDirs(functionObjectDictPath)); - forAll(etcDirs, ed) + for (const fileName& d : etcDirs) { - listDir(etcDirs[ed], foMap); + listDir(d, foMap); } Info<< nl @@ -154,17 +154,15 @@ Foam::fileName Foam::functionObjectList::findDict(const word& funcName) { return dictFile; } - else - { - fileNameList etcDirs(findEtcDirs(functionObjectDictPath)); - forAll(etcDirs, i) + fileNameList etcDirs(findEtcDirs(functionObjectDictPath)); + + for (const fileName& d : etcDirs) + { + dictFile = search(funcName, d); + if (!dictFile.empty()) { - dictFile = search(funcName, etcDirs[i]); - if (!dictFile.empty()) - { - return dictFile; - } + return dictFile; } } @@ -390,8 +388,6 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New HashSet<wordRe>& requiredFields ) { - autoPtr<functionObjectList> functionsPtr; - controlDict.add ( dictionaryEntry("functions", controlDict, dictionary::null) @@ -399,64 +395,66 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New dictionary& functionsDict = controlDict.subDict("functions"); - word region = word::null; + word region; + args.optionReadIfPresent("region", region); - // Set the region name if specified - if (args.optionFound("region")) - { - region = args["region"]; - } + bool modifiedControlDict = false; - if - ( - args.optionFound("dict") - || args.optionFound("func") - || args.optionFound("funcs") - ) + if (args.optionFound("dict")) { - if (args.optionFound("dict")) - { - controlDict.merge + modifiedControlDict = true; + + controlDict.merge + ( + IOdictionary ( - IOdictionary + IOobject ( - IOobject - ( - args["dict"], - runTime, - IOobject::MUST_READ_IF_MODIFIED - ) + args["dict"], + runTime, + IOobject::MUST_READ_IF_MODIFIED ) - ); - } + ) + ); + } + + if (args.optionFound("func")) + { + modifiedControlDict = true; + + readFunctionObject + ( + args["func"], + functionsDict, + requiredFields, + region + ); + } + + if (args.optionFound("funcs")) + { + modifiedControlDict = true; + + ITstream is("funcs", args["funcs"]); + wordList funcNames(is); - if (args.optionFound("func")) + for (const word& funcName : funcNames) { readFunctionObject ( - args["func"], + funcName, functionsDict, requiredFields, region ); } + } - if (args.optionFound("funcs")) - { - wordList funcs(args.optionLookup("funcs")()); - forAll(funcs, i) - { - readFunctionObject - ( - funcs[i], - functionsDict, - requiredFields, - region - ); - } - } + autoPtr<functionObjectList> functionsPtr; + if (modifiedControlDict) + { functionsPtr.reset(new functionObjectList(runTime, controlDict)); } else