From 07dafe7b0bfd729431a9e71ddf3f04876b70a81e Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Fri, 19 Oct 2018 13:08:24 +0200 Subject: [PATCH] STYLE: use range-for when looping dictionary entries. - as part of the cleanup of dictionary access methods (c6520033c9c4) made the dictionary class single inheritance from IDLList. This eliminates any ambiguities for iterators and allows for simple use of range-for looping. Eg, for (const entry& e : topDict)) { Info<< "entry:" << e.keyword() << " is dict:" << e.isDict() << nl; } vs forAllConstIter(dictionary, topDict, iter)) { Info<< "entry:" << iter().keyword() << " is dict:" << iter().isDict() << nl; } --- .../compressibleMultiphaseInterFoam/pEqn.H | 14 +-- .../icoReactingMultiphaseInterFoam/pEqn.H | 7 +- .../MultiComponentPhaseModel.C | 7 +- ...terfaceCompositionPhaseChangePhaseSystem.C | 9 +- .../phaseSystems/phaseSystem/phaseSystem.C | 6 +- .../twoPhaseSystem/twoPhaseSystem.C | 6 +- .../coordinateSystem/Test-coordinateSystem.C | 12 +-- .../utilities/mesh/advanced/PDRMesh/PDRMesh.C | 12 +-- .../cellSizeAndAlignmentControls.C | 10 +-- .../conformationSurfaces.C | 12 +-- .../createBaffles/createBaffles.C | 69 +++++++------- .../mesh/manipulation/stitchMesh/stitchMesh.C | 15 ++-- .../changeDictionary/changeDictionary.C | 48 +++++----- .../createZeroDirectory/boundaryTemplates.C | 21 +++-- .../faceAgglomerate/faceAgglomerate.C | 5 +- .../surfaceFeatureExtract.C | 8 +- .../surface/surfacePatch/surfacePatch.C | 15 ++-- .../HashTables/HashPtrTable/HashPtrTableIO.C | 6 +- src/OpenFOAM/db/Time/TimeIO.C | 36 ++++---- .../functionObjectList/functionObjectList.C | 9 +- .../stateFunctionObject/stateFunctionObject.C | 9 +- src/OpenFOAM/dimensionSet/dimensionSets.C | 11 +-- .../GeometricField/GeometricBoundaryField.C | 51 +++++------ .../basic/generic/genericPolyPatch.C | 16 ++-- src/conversion/common/tables/cellTable.C | 9 +- .../dynamicMultiMotionSolverFvMesh.C | 6 +- .../displacementLayeredMotionMotionSolver.C | 17 ++-- .../solidBody/multiSolidBodyMotionSolver.C | 18 ++-- .../multiMotion/multiMotion.C | 8 +- .../cfdTools/general/MRF/MRFZoneList.C | 21 ++--- .../cfdTools/general/fvOptions/fvOptionList.C | 21 ++--- .../porosityModel/porosityModelList.C | 21 ++--- .../solutionControl/solutionControl.C | 52 +++++------ .../field/externalCoupled/externalCoupled.C | 19 ++-- .../runTimePostProcessing.C | 8 +- .../runTimePostProcessingTemplates.C | 9 +- .../FixedValueConstraint.C | 20 +++-- .../semiImplicitSource/SemiImplicitSource.C | 18 ++-- .../genericFaPatchField/genericFaPatchField.C | 90 ++++++++++--------- .../genericFvPatchField/genericFvPatchField.C | 90 ++++++++++--------- .../genericPointPatchField.C | 80 +++++++++-------- .../ParticleForceList/ParticleForceList.C | 70 +++++++-------- .../InjectionModel/InjectionModelList.C | 55 ++++++------ .../MultiInteraction/MultiInteraction.C | 23 ++--- .../blockMesh/blockMeshTools/blockMeshTools.C | 16 ++-- .../layerParameters/layerParameters.C | 10 +-- .../searchableSurfaceCollection.C | 8 +- .../searchableSurfaces/searchableSurfaces.C | 33 ++++--- .../decompositionMethod/decompositionMethod.C | 4 +- .../multiLevelDecomp/multiLevelDecomp.C | 22 ++--- src/renumber/zoltanRenumber/zoltanRenumber.C | 8 +- .../rigidBodyModel/rigidBodyModel.C | 17 ++-- .../rigidBodyMeshMotion/rigidBodyMeshMotion.C | 11 +-- .../rigidBodyMeshMotionSolver.C | 11 +-- .../ensight/ensightSurfaceWriterTemplates.C | 7 +- .../sixDoFRigidBodyMotion.C | 16 ++-- .../greyMeanAbsorptionEmission.C | 12 +-- .../greyMeanSolidAbsorptionEmission.C | 12 +-- .../wideBandAbsorptionEmission.C | 25 +++--- .../Reactions/ReactionList/ReactionList.C | 8 +- 60 files changed, 636 insertions(+), 653 deletions(-) diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H index f0d7e05ed2..e2ccdb9a4e 100644 --- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H +++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/pEqn.H @@ -25,12 +25,7 @@ PtrList p_rghEqnComps(mixture.phases().size()); label phasei = 0; - forAllConstIter - ( - PtrDictionary, - mixture.phases(), - phase - ) + forAllConstIters(mixture.phases(), phase) { const rhoThermo& thermo = phase().thermo(); const volScalarField& rho = thermo.rho()(); @@ -61,12 +56,7 @@ tmp p_rghEqnComp; phasei = 0; - forAllConstIter - ( - PtrDictionary, - mixture.phases(), - phase - ) + forAllConstIters(mixture.phases(), phase) { tmp hmm ( diff --git a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/pEqn.H b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/pEqn.H index ef99517acb..5dd7990620 100644 --- a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/pEqn.H +++ b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/pEqn.H @@ -35,12 +35,7 @@ - fvm::laplacian(rAUf, p_rgh) ); - forAllConstIter - ( - phaseSystem::phasePairTable, - fluid.totalPhasePairs(), - iter - ) + forAllConstIters(fluid.totalPhasePairs(), iter) { const phasePair& pair = iter()(); diff --git a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C index 6c00cd3a76..c22527c60b 100644 --- a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C +++ b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C @@ -202,7 +202,7 @@ void Foam::MultiComponentPhaseModel::solveYi surfaceScalarField phir(0.0*phi); - forAllConstIter(phaseSystem::phaseModelTable,this->fluid().phases(),iter2) + forAllConstIters(this->fluid().phases(),iter2) { const volScalarField& alpha2 = iter2(); if (&alpha2 == &alpha1) @@ -251,10 +251,7 @@ void Foam::MultiComponentPhaseModel::solveYi surfaceScalarField& phiYiCorr = phiYiCorrs[i]; - forAllConstIter - ( - phaseSystem::phaseModelTable, this->fluid().phases(), iter2 - ) + forAllConstIters(this->fluid().phases(), iter2) { //const volScalarField& alpha2 = iter2()().oldTime(); const volScalarField& alpha2 = iter2(); diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.C index a68bd91745..94c67fa820 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/InterfaceCompositionPhaseChangePhaseSystem/InterfaceCompositionPhaseChangePhaseSystem.C @@ -125,15 +125,8 @@ massTransfer() const this->massTransferModels_[key][phase.name()]->K() ); - forAllConstIter - ( - hashedWordList, - compositionModel.species(), - memberIter - ) + for (const word& member : compositionModel.species()) { - const word& member = *memberIter; - const word name ( IOobject::groupName(member, phase.name()) diff --git a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.C b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.C index 816140df2f..7848257f81 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.C +++ b/applications/solvers/multiphase/reactingEulerFoam/phaseSystems/phaseSystem/phaseSystem.C @@ -157,14 +157,14 @@ Foam::phaseSystem::phaseSystem phi_.writeOpt() = IOobject::AUTO_WRITE; // Blending methods - forAllConstIter(dictionary, subDict("blending"), iter) + for (const entry& dEntry : subDict("blending")) { blendingMethods_.insert ( - iter().dict().dictName(), + dEntry.dict().dictName(), blendingMethod::New ( - iter().dict(), + dEntry.dict(), phaseModels_.toc() ) ); diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C index b875ed74ef..b5796197ad 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C @@ -113,14 +113,14 @@ Foam::twoPhaseSystem::twoPhaseSystem // Blending - forAllConstIter(dictionary, subDict("blending"), iter) + for (const entry& dEntry : subDict("blending")) { blendingMethods_.insert ( - iter().dict().dictName(), + dEntry.dict().dictName(), blendingMethod::New ( - iter().dict(), + dEntry.dict(), wordList(lookup("phases")) ) ); diff --git a/applications/test/coordinateSystem/Test-coordinateSystem.C b/applications/test/coordinateSystem/Test-coordinateSystem.C index d8ea6c3e0e..f8d653b4f3 100644 --- a/applications/test/coordinateSystem/Test-coordinateSystem.C +++ b/applications/test/coordinateSystem/Test-coordinateSystem.C @@ -182,11 +182,11 @@ int main(int argc, char *argv[]) dictionary inputDict(is); - forAllConstIters(inputDict, iter) + for (const entry& dEntry : inputDict) { - if (iter().isDict()) + if (dEntry.isDict()) { - doTest(runTime, iter().dict()); + doTest(runTime, dEntry.dict()); } } } @@ -204,11 +204,11 @@ int main(int argc, char *argv[]) dictionary inputDict(is); - forAllConstIters(inputDict, iter) + for (const entry& dEntry : inputDict) { - if (iter().isDict()) + if (dEntry.isDict()) { - doTest(iter().dict()); + doTest(dEntry.dict()); } } } diff --git a/applications/utilities/mesh/advanced/PDRMesh/PDRMesh.C b/applications/utilities/mesh/advanced/PDRMesh/PDRMesh.C index 4775743f10..7fbeb17389 100644 --- a/applications/utilities/mesh/advanced/PDRMesh/PDRMesh.C +++ b/applications/utilities/mesh/advanced/PDRMesh/PDRMesh.C @@ -650,17 +650,19 @@ int main(int argc, char *argv[]) // Per faceSet the patch to put the coupled baffles into DynamicList> coupledAndPatches(10); + const dictionary& functionDicts = dict.subDict("coupledFaces"); - forAllConstIter(dictionary, functionDicts, iter) + + for (const entry& dEntry : functionDicts) { - // safety: - if (!iter().isDict()) + if (!dEntry.isDict()) // Safety { continue; } - const word& key = iter().keyword(); - const dictionary& dict = iter().dict(); + const word& key = dEntry.keyword(); + const dictionary& dict = dEntry.dict(); + const word cyclicName = dict.get("cyclicMasterPatch"); const word wallName = dict.get("wallPatch"); FixedList nameAndType; diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellSizeAndAlignmentControl/cellSizeAndAlignmentControls.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellSizeAndAlignmentControl/cellSizeAndAlignmentControls.C index e4534bb099..864fde396b 100644 --- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellSizeAndAlignmentControl/cellSizeAndAlignmentControls.C +++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/cellShapeControl/cellSizeAndAlignmentControl/cellSizeAndAlignmentControls.C @@ -93,14 +93,10 @@ Foam::cellSizeAndAlignmentControls::cellSizeAndAlignmentControls { label functionI = 0; - forAllConstIter(dictionary, shapeControlDict_, iter) + for (const entry& dEntry : shapeControlDict_) { - word shapeControlEntryName = iter().keyword(); - - const dictionary& controlFunctionDict - ( - shapeControlDict_.subDict(shapeControlEntryName) - ); + const word& shapeControlEntryName = dEntry.keyword(); + const dictionary& controlFunctionDict = dEntry.dict(); Info<< nl << "Shape Control : " << shapeControlEntryName << endl; Info<< incrIndent; diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C index fba263b464..d63a7f12d4 100644 --- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C +++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C @@ -535,16 +535,12 @@ Foam::conformationSurfaces::conformationSurfaces Info<< nl << "Reading additionalFeatures" << endl; } - forAllConstIter(dictionary, additionalFeaturesDict, iter) + for (const entry& dEntry : additionalFeaturesDict) { - word featureName = iter().keyword(); + const word& featureName = dEntry.keyword(); + const dictionary& featureSubDict = dEntry.dict(); - Info<< nl << " " << iter().keyword() << endl; - - const dictionary& featureSubDict - ( - additionalFeaturesDict.subDict(featureName) - ); + Info<< nl << " " << featureName << endl; readFeatures(featureSubDict, featureName, featureI); } diff --git a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C index 5b72e778c6..dc2eda49c3 100644 --- a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C +++ b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C @@ -474,27 +474,24 @@ int main(int argc, char *argv[]) const dictionary& selectionsDict = dict.subDict("baffles"); - label n = 0; - forAllConstIter(dictionary, selectionsDict, iter) + selectors.resize(selectionsDict.size()); + + label nselect = 0; + for (const entry& dEntry : selectionsDict) { - if (iter().isDict()) - { - n++; - } - } - selectors.setSize(n); - n = 0; - forAllConstIter(dictionary, selectionsDict, iter) - { - if (iter().isDict()) + if (dEntry.isDict()) { selectors.set ( - n++, - faceSelection::New(iter().keyword(), mesh, iter().dict()) + nselect, + faceSelection::New(dEntry.keyword(), mesh, dEntry.dict()) ); + + ++nselect; } } + + selectors.resize(nselect); } @@ -641,10 +638,9 @@ int main(int argc, char *argv[]) if (dict.found("patches")) { - const dictionary& patchSources = dict.subDict("patches"); - forAllConstIter(dictionary, patchSources, iter) + for (const entry& dEntry : dict.subDict("patches")) { - const word patchName(iter().dict().get("name")); + const word patchName(dEntry.dict().get("name")); bafflePatches.insert(patchName); } @@ -687,14 +683,15 @@ int main(int argc, char *argv[]) if (dict.found("patches")) { - const dictionary& patchSources = dict.subDict("patches"); - forAllConstIter(dictionary, patchSources, iter) + for (const entry& dEntry : dict.subDict("patches")) { - const word patchName(iter().dict().get("name")); + const dictionary& dict = dEntry.dict(); + + const word patchName(dict.get("name")); if (pbm.findPatchID(patchName) == -1) { - dictionary patchDict = iter().dict(); + dictionary patchDict = dict; patchDict.set("nFaces", 0); patchDict.set("startFace", 0); @@ -789,13 +786,14 @@ int main(int argc, char *argv[]) if (dict.found("patches")) { - const dictionary& patchSources = dict.subDict("patches"); - bool master = true; - forAllConstIter(dictionary, patchSources, iter) + + for (const entry& dEntry : dict.subDict("patches")) { - const word patchName(iter().dict().get("name")); - label patchi = pbm.findPatchID(patchName); + const word patchName(dEntry.dict().get("name")); + + const label patchi = pbm.findPatchID(patchName); + if (master) { newMasterPatches.append(patchi); @@ -885,17 +883,18 @@ int main(int argc, char *argv[]) const dictionary& dict = selectors[selectorI].dict(); if (dict.found("patches")) { - const dictionary& patchSources = dict.subDict("patches"); - - forAllConstIter(dictionary, patchSources, iter) + for (const entry& dEntry : dict.subDict("patches")) { - const word patchName(iter().dict().get("name")); + const dictionary& dict = dEntry.dict(); + + const word patchName(dict.get("name")); + label patchi = pbm.findPatchID(patchName); - if (iter().dict().found("patchFields")) + if (dEntry.dict().found("patchFields")) { const dictionary& patchFieldsDict = - iter().dict().subDict + dEntry.dict().subDict ( "patchFields" ); @@ -928,11 +927,11 @@ int main(int argc, char *argv[]) if (sameGroup) { // Add coupleGroup to all entries - forAllIter(dictionary, patchFieldsDict, iter) + for (entry& dEntry : patchFieldsDict) { - if (iter().isDict()) + if (dEntry.isDict()) { - dictionary& dict = iter().dict(); + dictionary& dict = dEntry.dict(); dict.set("coupleGroup", groupName); } } diff --git a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C index 75af67f118..104753bc4c 100644 --- a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C +++ b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C @@ -292,16 +292,17 @@ int main(int argc, char *argv[]) // Suppress duplicate names wordHashSet requestedPatches; - forAllConstIters(stitchDict, iter) + for (const entry& dEntry : stitchDict) { - if (!iter().isDict()) + if (!dEntry.isDict()) { Info<< "Ignoring non-dictionary entry: " - << iter().keyword() << nl; + << dEntry.keyword() << nl; continue; } - const dictionary& dict = iter().dict(); + const keyType& key = dEntry.keyword(); + const dictionary& dict = dEntry.dict(); // Match type word matchName; @@ -358,7 +359,7 @@ int main(int argc, char *argv[]) // Input was validated - validatedDict.add(iter().keyword(), iter().dict()); + validatedDict.add(key, dict); } } @@ -433,9 +434,9 @@ int main(int argc, char *argv[]) // Step through the topology changes label actioni = 0; - forAllConstIters(validatedDict, iter) + for (const entry& dEntry : validatedDict) { - const dictionary& dict = iter().dict(); + const dictionary& dict = dEntry.dict(); // Match type bool perfect = false; diff --git a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C index 4e86ce0af9..65803c4274 100644 --- a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C +++ b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C @@ -97,10 +97,10 @@ HashTable extractPatchGroups(const dictionary& boundaryDict) { HashTable groupToPatch; - forAllConstIter(dictionary, boundaryDict, iter) + for (const entry& dEntry : boundaryDict) { - const word& patchName = iter().keyword(); - const dictionary& patchDict = iter().dict(); + const word& patchName = dEntry.keyword(); + const dictionary& patchDict = dEntry.dict(); wordList groups; if (patchDict.readIfPresent("inGroups", groups)) @@ -243,9 +243,9 @@ bool merge // Pass 1. All literal matches - forAllConstIter(IDLList, mergeDict, mergeIter) + for (const entry& mergeEntry : mergeDict) { - const keyType& key = mergeIter().keyword(); + const keyType& key = mergeEntry.keyword(); if (key[0] == '~') { @@ -274,7 +274,7 @@ bool merge ( thisDict, *eptr, - mergeIter(), + mergeEntry, literalRE, shortcuts ) @@ -287,8 +287,8 @@ bool merge { if (addNonExisting) { - // not found - just add - thisDict.add(mergeIter().clone(thisDict).ptr()); + // Not found - just add + thisDict.add(mergeEntry.clone(thisDict).ptr()); changed = true; } else @@ -309,9 +309,9 @@ bool merge // Pick up remaining dictionary entries wordList thisKeys(thisKeysSet.toc()); - forAllConstIter(IDLList, mergeDict, mergeIter) + for (const entry& mergeEntry : mergeDict) { - const keyType& key = mergeIter().keyword(); + const keyType& key = mergeEntry.keyword(); if (key[0] == '~') { @@ -364,7 +364,7 @@ bool merge ( thisDict, *eptr, - mergeIter(), + mergeEntry, literalRE, HashTable(0) // no shortcuts // at deeper levels @@ -462,7 +462,7 @@ int main(int argc, char *argv[]) const bool enableEntries = args.found("enableFunctionEntries"); if (enableEntries) { - Info<< "Allowing dictionary preprocessing ('#include', '#codeStream')." + Info<< "Allowing dictionary preprocessing (#include, #codeStream)." << endl; } @@ -550,9 +550,9 @@ int main(int argc, char *argv[]) // Temporary convert to dictionary dictionary fieldDict; - forAll(dictList, i) + for (const entry& e : dictList) { - fieldDict.add(dictList[i].keyword(), dictList[i].dict()); + fieldDict.add(e.keyword(), e.dict()); } if (dictList.size()) @@ -582,9 +582,11 @@ int main(int argc, char *argv[]) // Every replacement is a dictionary name and a keyword in this - forAllConstIter(dictionary, replaceDicts, fieldIter) + for (const entry& replaceEntry : replaceDicts) { - const word& fieldName = fieldIter().keyword(); + const word& fieldName = replaceEntry.keyword(); + const dictionary& replaceDict = replaceEntry.dict(); + Info<< "Replacing entries in dictionary " << fieldName << endl; // Handle 'boundary' specially: @@ -595,11 +597,8 @@ int main(int argc, char *argv[]) Info<< "Special handling of " << fieldName << " as polyMesh/boundary file." << endl; - // Get the replacement dictionary for the field - const dictionary& replaceDict = fieldIter().dict(); - Info<< "Merging entries from " << replaceDict.toc() << endl; - // Merge the replacements in. Do not add non-existing entries. + Info<< "Merging entries from " << replaceDict.toc() << endl; merge(false, fieldDict, replaceDict, literalRE, patchGroups); Info<< "fieldDict:" << fieldDict << endl; @@ -627,9 +626,9 @@ int main(int argc, char *argv[]) // Add remaining entries label sz = dictList.size(); dictList.setSize(nEntries); - forAllConstIter(dictionary, fieldDict, iter) + for (const entry& e : fieldDict) { - dictList.set(sz++, iter().clone()); + dictList.set(sz++, e.clone()); } Info<< "Writing modified " << fieldName << endl; @@ -672,11 +671,8 @@ int main(int argc, char *argv[]) Info<< "Loaded dictionary " << fieldName << " with entries " << fieldDict.toc() << endl; - // Get the replacement dictionary for the field - const dictionary& replaceDict = fieldIter().dict(); - Info<< "Merging entries from " << replaceDict.toc() << endl; - // Merge the replacements in (allow adding) + Info<< "Merging entries from " << replaceDict.toc() << endl; merge(true, fieldDict, replaceDict, literalRE, patchGroups); Info<< "Writing modified fieldDict " << fieldName << endl; diff --git a/applications/utilities/preProcessing/createZeroDirectory/boundaryTemplates.C b/applications/utilities/preProcessing/createZeroDirectory/boundaryTemplates.C index e6b71b3fd0..6f6b1207b5 100644 --- a/applications/utilities/preProcessing/createZeroDirectory/boundaryTemplates.C +++ b/applications/utilities/preProcessing/createZeroDirectory/boundaryTemplates.C @@ -54,9 +54,9 @@ Foam::boundaryTemplates::boundaryTemplates ) ); - forAllConstIter(dictionary, regionBCs, iter) + for (const entry& dEntry : regionBCs) { - const word& regionType = iter().keyword(); + const word& regionType = dEntry.keyword(); wordList patchTypes(regionBCs.lookup(regionType)); dictionary regionTemplate = dictionary::null; @@ -175,7 +175,7 @@ Foam::dictionary Foam::boundaryTemplates::generatePatchDict // look for inlet, outlet, wall etc if (regionTemplates.found(category)) { - const dictionary& categoryDict(regionTemplates.subDict(category)); + const dictionary& categoryDict = regionTemplates.subDict(category); // look for subSonic, slip etc if (categoryDict.found(patchType)) @@ -199,10 +199,8 @@ Foam::dictionary Foam::boundaryTemplates::generatePatchDict const wordList requiredOptions(patchDict.lookup("OPTIONS")); - forAll(requiredOptions, i) + for (const word& option : requiredOptions) { - const word& option = requiredOptions[i]; - word selected; if (!conditionOptions.readIfPresent(option, selected)) { @@ -252,18 +250,19 @@ Foam::dictionary Foam::boundaryTemplates::generatePatchDict dictionary dict(dictionary::null); const dictionary& fieldDict(patchDict.subDict(fieldName)); - forAllConstIter(IDLList, fieldDict, iter) + for (const entry& dEntry : fieldDict) { OStringStream oss; - oss << iter(); + oss << dEntry; + string s(oss.str()); - s.replace(iter().keyword(), ""); + s.replace(dEntry.keyword(), ""); s.replace ( "VALUE", "boundaryConditions." + condition + ".values" ); - dict.add(iter().keyword(), s.c_str()); + dict.add(dEntry.keyword(), s.c_str()); } return dict; @@ -344,7 +343,7 @@ bool Foam::boundaryTemplates::optionsRequired if (regionTemplates.found(category)) { - const dictionary& categoryDict(regionTemplates.subDict(category)); + const dictionary& categoryDict = regionTemplates.subDict(category); if (categoryDict.found(patchType)) { diff --git a/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.C b/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.C index ff77af6bb6..03427de8ed 100644 --- a/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.C +++ b/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.C @@ -86,9 +86,10 @@ int main(int argc, char *argv[]) label nCoarseFaces = 0; - forAllConstIter(dictionary, agglomDict, iter) + for (const entry& dEntry : agglomDict) { - labelList patchids = boundary.indices(iter().keyword()); + labelList patchids = boundary.indices(dEntry.keyword()); + for (const label patchi : patchids) { const polyPatch& pp = boundary[patchi]; diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C index ed24931a6e..08b32ac370 100644 --- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C +++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C @@ -241,14 +241,15 @@ int main(int argc, char *argv[]) // Where to write VTK output files const fileName vtkOutputDir = runTime.constantPath()/"triSurface"; - forAllConstIters(dict, iter) + for (const entry& dEntry : dict) { - if (!iter().isDict() || iter().keyword().isPattern()) + if (!dEntry.isDict() || dEntry.keyword().isPattern()) // safety { continue; } - const dictionary& surfaceDict = iter().dict(); + const word& dictName = dEntry.keyword(); + const dictionary& surfaceDict = dEntry.dict(); if (!surfaceDict.found("extractionMethod")) { @@ -257,7 +258,6 @@ int main(int argc, char *argv[]) } // The output name based in dictionary name (without extensions) - const word& dictName = iter().keyword(); const word outputName = dictName.lessExt(); autoPtr extractor = diff --git a/applications/utilities/surface/surfacePatch/surfacePatch.C b/applications/utilities/surface/surfacePatch/surfacePatch.C index ab58b505ca..09085ff4f3 100644 --- a/applications/utilities/surface/surfacePatch/surfacePatch.C +++ b/applications/utilities/surface/surfacePatch/surfacePatch.C @@ -84,12 +84,12 @@ int main(int argc, char *argv[]) const dictionary& surfacesDict = meshDict.subDict("surfaces"); - forAllConstIter(dictionary, surfacesDict, surfacesIter) + for (const entry& dEntry : surfacesDict) { - if (surfacesIter().isDict()) + if (dEntry.isDict()) { - const word& surfName = surfacesIter().keyword(); - const dictionary& surfDict = surfacesIter().dict(); + const word& surfName = dEntry.keyword(); + const dictionary& surfDict = dEntry.dict(); // Look up surface searchableSurface& surf = allGeometry[surfName]; @@ -120,10 +120,11 @@ int main(int argc, char *argv[]) if (surfDict.found("regions")) { const dictionary& regionsDict = surfDict.subDict("regions"); - forAllConstIter(dictionary, regionsDict, regionsIter) + + for (const entry& e : regionsDict) { - const dictionary& regionDict = regionsIter().dict(); - const keyType& regionName = regionsIter().keyword(); + const keyType& regionName = e.keyword(); + const dictionary& regionDict = e.dict(); autoPtr modifier ( diff --git a/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C b/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C index 1ee34afb0e..e3459acd00 100644 --- a/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C +++ b/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C @@ -147,11 +147,9 @@ void Foam::HashPtrTable::read const INew& inew ) { - forAllConstIter(dictionary, dict, iter) + for (const entry& e : dict) { - const word& k = iter().keyword(); - - this->set(k, inew(dict.subDict(k)).ptr()); + this->set(e.keyword(), inew(e.dict()).ptr()); } } diff --git a/src/OpenFOAM/db/Time/TimeIO.C b/src/OpenFOAM/db/Time/TimeIO.C index ed6252d7eb..36651ed474 100644 --- a/src/OpenFOAM/db/Time/TimeIO.C +++ b/src/OpenFOAM/db/Time/TimeIO.C @@ -109,9 +109,9 @@ void Foam::Time::readDict() simpleObjectRegistry& objs = debug::debugObjects(); - forAllConstIters(*localDict, iter) + for (const entry& dEntry : *localDict) { - const word& name = iter().keyword(); + const word& name = dEntry.keyword(); simpleObjectRegistryEntry* objPtr = objs.lookupPtr(name); @@ -119,14 +119,14 @@ void Foam::Time::readDict() { const List& objects = *objPtr; - DetailInfo << " " << iter() << nl; + DetailInfo << " " << dEntry << nl; - if (iter().isDict()) + if (dEntry.isDict()) { for (simpleRegIOobject* obj : objects) { OStringStream os(IOstream::ASCII); - os << iter().dict(); + os << dEntry.dict(); IStringStream is(os.str()); obj->readData(is); } @@ -135,7 +135,7 @@ void Foam::Time::readDict() { for (simpleRegIOobject* obj : objects) { - obj->readData(iter().stream()); + obj->readData(dEntry.stream()); } } } @@ -156,9 +156,9 @@ void Foam::Time::readDict() simpleObjectRegistry& objs = debug::infoObjects(); - forAllConstIters(*localDict, iter) + for (const entry& dEntry : *localDict) { - const word& name = iter().keyword(); + const word& name = dEntry.keyword(); simpleObjectRegistryEntry* objPtr = objs.lookupPtr(name); @@ -166,14 +166,14 @@ void Foam::Time::readDict() { const List& objects = *objPtr; - DetailInfo << " " << iter() << nl; + DetailInfo << " " << dEntry << nl; - if (iter().isDict()) + if (dEntry.isDict()) { for (simpleRegIOobject* obj : objects) { OStringStream os(IOstream::ASCII); - os << iter().dict(); + os << dEntry.dict(); IStringStream is(os.str()); obj->readData(is); } @@ -182,7 +182,7 @@ void Foam::Time::readDict() { for (simpleRegIOobject* obj : objects) { - obj->readData(iter().stream()); + obj->readData(dEntry.stream()); } } } @@ -202,24 +202,24 @@ void Foam::Time::readDict() simpleObjectRegistry& objs = debug::optimisationObjects(); - forAllConstIters(*localDict, iter) + for (const entry& dEntry : *localDict) { - const word& name = iter().keyword(); + const word& name = dEntry.keyword(); simpleObjectRegistryEntry* objPtr = objs.lookupPtr(name); if (objPtr) { - DetailInfo << " " << iter() << nl; + DetailInfo << " " << dEntry << nl; const List& objects = *objPtr; - if (iter().isDict()) + if (dEntry.isDict()) { for (simpleRegIOobject* obj : objects) { OStringStream os(IOstream::ASCII); - os << iter().dict(); + os << dEntry.dict(); IStringStream is(os.str()); obj->readData(is); } @@ -228,7 +228,7 @@ void Foam::Time::readDict() { for (simpleRegIOobject* obj : objects) { - obj->readData(iter().stream()); + obj->readData(dEntry.stream()); } } } diff --git a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C index 4519ceb282..1410bdad00 100644 --- a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C +++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C @@ -728,11 +728,11 @@ bool Foam::functionObjectList::read() newPtrs.setSize(functionsDict.size()); newDigs.setSize(functionsDict.size()); - forAllConstIter(dictionary, functionsDict, iter) + for (const entry& dEntry : functionsDict) { - const word& key = iter().keyword(); + const word& key = dEntry.keyword(); - if (!iter().isDict()) + if (!dEntry.isDict()) { if (key != "libs") { @@ -743,7 +743,8 @@ bool Foam::functionObjectList::read() continue; } - const dictionary& dict = iter().dict(); + const dictionary& dict = dEntry.dict(); + bool enabled = dict.lookupOrDefault("enabled", true); newDigs[nFunc] = dict.digest(); diff --git a/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C b/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C index 43627cd4f2..1bfe099f0a 100644 --- a/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C +++ b/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C @@ -154,9 +154,9 @@ Foam::word Foam::functionObjects::stateFunctionObject::objectResultType { const dictionary& objectDict = resultsDict.subDict(objectName); - forAllConstIter(dictionary, objectDict, iter) + for (const entry& dEntry : objectDict) { - const dictionary& dict = iter().dict(); + const dictionary& dict = dEntry.dict(); if (dict.found(entryName)) { @@ -195,9 +195,10 @@ objectResultEntries { const dictionary& objectDict = resultsDict.subDict(objectName); - forAllConstIter(dictionary, objectDict, iter) + for (const entry& dEntry : objectDict) { - const dictionary& dict = iter().dict(); + const dictionary& dict = dEntry.dict(); + result.append(dict.toc()); } } diff --git a/src/OpenFOAM/dimensionSet/dimensionSets.C b/src/OpenFOAM/dimensionSet/dimensionSets.C index 207deda377..176b746a55 100644 --- a/src/OpenFOAM/dimensionSet/dimensionSets.C +++ b/src/OpenFOAM/dimensionSet/dimensionSets.C @@ -120,17 +120,18 @@ const HashTable& unitSet() unitSetPtr_ = new HashTable(unitDict.size()); - forAllConstIter(dictionary, unitDict, iter) + for (const entry& dEntry : unitDict) { - if (iter().keyword() != "writeUnits") + if (dEntry.keyword() != "writeUnits") { dimensionedScalar dt; - dt.read(iter().stream(), unitDict); - bool ok = unitSetPtr_->insert(iter().keyword(), dt); + dt.read(dEntry.stream(), unitDict); + + bool ok = unitSetPtr_->insert(dEntry.keyword(), dt); if (!ok) { FatalIOErrorInFunction(dict) - << "Duplicate unit " << iter().keyword() + << "Duplicate unit " << dEntry.keyword() << " in DimensionSets dictionary" << exit(FatalIOError); } diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C index 2ebf52925c..d82f34fa9f 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C +++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricBoundaryField.C @@ -47,11 +47,12 @@ readField // 1. Handle explicit patch names. Note that there can be only one explicit // patch name since is key of dictionary. - forAllConstIter(dictionary, dict, iter) + + for (const entry& dEntry : dict) { - if (iter().isDict() && iter().keyword().isLiteral()) + if (dEntry.isDict() && dEntry.keyword().isLiteral()) { - const label patchi = bmesh_.findPatchID(iter().keyword()); + const label patchi = bmesh_.findPatchID(dEntry.keyword()); if (patchi != -1) { @@ -62,7 +63,7 @@ readField ( bmesh_[patchi], field, - iter().dict() + dEntry.dict() ) ); nUnset--; @@ -81,37 +82,29 @@ readField // Note: in reverse order of entries in the dictionary (last // patchGroups wins). This is so it is consistent with dictionary wildcard // behaviour - if (dict.size()) + for (auto iter = dict.crbegin(); iter != dict.crend(); ++iter) { - for - ( - IDLList::const_reverse_iterator iter = dict.crbegin(); - iter != dict.crend(); - ++iter - ) + const entry& dEntry = *iter; + + if (dEntry.isDict() && dEntry.keyword().isLiteral()) { - const entry& e = iter(); + const labelList patchIds = + bmesh_.indices(dEntry.keyword(), true); // use patchGroups - if (e.isDict() && e.keyword().isLiteral()) + for (const label patchi : patchIds) { - const labelList patchIds = - bmesh_.indices(e.keyword(), true); // use patchGroups - - for (const label patchi : patchIds) + if (!this->set(patchi)) { - if (!this->set(patchi)) - { - this->set + this->set + ( + patchi, + PatchField::New ( - patchi, - PatchField::New - ( - bmesh_[patchi], - field, - e.dict() - ) - ); - } + bmesh_[patchi], + field, + dEntry.dict() + ) + ); } } } diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/generic/genericPolyPatch.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/generic/genericPolyPatch.C index f63eba0496..579a633d07 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/generic/genericPolyPatch.C +++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/generic/genericPolyPatch.C @@ -131,19 +131,21 @@ void Foam::genericPolyPatch::write(Ostream& os) const os.writeEntry("nFaces", size()); os.writeEntry("startFace", start()); - forAllConstIter(dictionary, dict_, iter) + for (const entry& e : dict_) { + const word& key = e.keyword(); + // Filter out any keywords already written by above if ( - iter().keyword() != "type" - && iter().keyword() != "nFaces" - && iter().keyword() != "startFace" - && iter().keyword() != "physicalType" - && iter().keyword() != "inGroups" + key != "type" + && key != "nFaces" + && key != "startFace" + && key != "physicalType" + && key != "inGroups" ) { - iter().write(os); + e.write(os); } } } diff --git a/src/conversion/common/tables/cellTable.C b/src/conversion/common/tables/cellTable.C index 6707f00027..d01749d139 100644 --- a/src/conversion/common/tables/cellTable.C +++ b/src/conversion/common/tables/cellTable.C @@ -238,16 +238,19 @@ Foam::Map Foam::cellTable::selectType(const word& matl) const forAllConstIter(Map, *this, iter) { + const label index = iter.key(); + const dictionary& dict = iter.object(); + if ( matl - == iter().lookupOrDefault("MaterialType", defaultMaterial_) + == dict.lookupOrDefault("MaterialType", defaultMaterial_) ) { lookup.insert ( - iter.key(), - iter().lookupOrDefault + index, + dict.lookupOrDefault ( "Label", "cellTable_" + Foam::name(iter.key()) diff --git a/src/dynamicFvMesh/dynamicMultiMotionSolverFvMesh/dynamicMultiMotionSolverFvMesh.C b/src/dynamicFvMesh/dynamicMultiMotionSolverFvMesh/dynamicMultiMotionSolverFvMesh.C index 7e720fd38a..bd7afc1ce2 100644 --- a/src/dynamicFvMesh/dynamicMultiMotionSolverFvMesh/dynamicMultiMotionSolverFvMesh.C +++ b/src/dynamicFvMesh/dynamicMultiMotionSolverFvMesh/dynamicMultiMotionSolverFvMesh.C @@ -71,11 +71,11 @@ Foam::dynamicMultiMotionSolverFvMesh::dynamicMultiMotionSolverFvMesh pointIDs_.setSize(dynamicMeshCoeffs.size()); label zoneI = 0; - forAllConstIter(dictionary, dynamicMeshCoeffs, iter) + for (const entry& dEntry : dynamicMeshCoeffs) { - if (iter().isDict()) + if (dEntry.isDict()) { - const dictionary& subDict = iter().dict(); + const dictionary& subDict = dEntry.dict(); const word zoneName(subDict.get("cellZone")); diff --git a/src/dynamicMesh/motionSolvers/displacement/layeredSolver/displacementLayeredMotionMotionSolver.C b/src/dynamicMesh/motionSolvers/displacement/layeredSolver/displacementLayeredMotionMotionSolver.C index 4fc9265323..898a99592a 100644 --- a/src/dynamicMesh/motionSolvers/displacement/layeredSolver/displacementLayeredMotionMotionSolver.C +++ b/src/dynamicMesh/motionSolvers/displacement/layeredSolver/displacementLayeredMotionMotionSolver.C @@ -306,9 +306,9 @@ void Foam::displacementLayeredMotionMotionSolver::cellZoneSolve // Allocate the fields label patchi = 0; - forAllConstIter(dictionary, patchesDict, patchiter) + for (const entry& dEntry : patchesDict) { - const word& faceZoneName = patchiter().keyword(); + const word& faceZoneName = dEntry.keyword(); label zoneI = mesh().faceZones().findZoneID(faceZoneName); if (zoneI == -1) { @@ -353,10 +353,10 @@ void Foam::displacementLayeredMotionMotionSolver::cellZoneSolve pointDisplacement_.correctBoundaryConditions(); patchi = 0; - forAllConstIter(dictionary, patchesDict, patchiter) + for (const entry& dEntry : patchesDict) { - const word& faceZoneName = patchiter().keyword(); - const dictionary& faceZoneDict = patchiter().dict(); + const word& faceZoneName = dEntry.keyword(); + const dictionary& faceZoneDict = dEntry.dict(); // Determine the points of the faceZone within the cellZone const faceZone& fz = mesh().faceZones()[faceZoneName]; @@ -546,11 +546,10 @@ void Foam::displacementLayeredMotionMotionSolver::solve() pointDisplacement_.boundaryFieldRef().updateCoeffs(); // Solve motion on all regions (=cellZones) - const dictionary& regionDicts = coeffDict().subDict("regions"); - forAllConstIter(dictionary, regionDicts, regionIter) + for (const entry& dEntry : coeffDict().subDict("regions")) { - const word& cellZoneName = regionIter().keyword(); - const dictionary& regionDict = regionIter().dict(); + const word& cellZoneName = dEntry.keyword(); + const dictionary& regionDict = dEntry.dict(); label zoneI = mesh().cellZones().findZoneID(cellZoneName); diff --git a/src/dynamicMesh/motionSolvers/displacement/solidBody/multiSolidBodyMotionSolver.C b/src/dynamicMesh/motionSolvers/displacement/solidBody/multiSolidBodyMotionSolver.C index 49672e704b..daab9660b6 100644 --- a/src/dynamicMesh/motionSolvers/displacement/solidBody/multiSolidBodyMotionSolver.C +++ b/src/dynamicMesh/motionSolvers/displacement/solidBody/multiSolidBodyMotionSolver.C @@ -59,24 +59,26 @@ Foam::multiSolidBodyMotionSolver::multiSolidBodyMotionSolver pointIDs_.setSize(coeffDict().size()); label zonei = 0; - forAllConstIter(dictionary, coeffDict(), iter) + for (const entry& dEntry : coeffDict()) { - if (iter().isDict()) + if (dEntry.isDict()) { - zoneIDs_[zonei] = mesh.cellZones().findZoneID(iter().keyword()); + const word& zoneName = dEntry.keyword(); + const dictionary& subDict = dEntry.dict(); + + zoneIDs_[zonei] = mesh.cellZones().findZoneID(zoneName); if (zoneIDs_[zonei] == -1) { FatalIOErrorInFunction ( coeffDict() - ) << "Cannot find cellZone named " << iter().keyword() - << ". Valid zones are " << mesh.cellZones().names() + ) << "Cannot find cellZone named " << zoneName + << ". Valid zones are " + << flatOutput(mesh.cellZones().names()) << exit(FatalIOError); } - const dictionary& subDict = iter().dict(); - SBMFs_.set ( zonei, @@ -119,7 +121,7 @@ Foam::multiSolidBodyMotionSolver::multiSolidBodyMotionSolver Info<< "Applying solid body motion " << SBMFs_[zonei].type() << " to " << returnReduce(pointIDs_[zonei].size(), sumOp