From 29a5793b5beeeefc9b8f28024234c5e24ef7e773 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Wed, 12 Dec 2018 12:10:39 +0100
Subject: [PATCH] STYLE: argList::opt method instead of the longer
 argList::lookupOrDefault

- also replaced a few instances of readIfPresent with opt<> for
  constant values.
---
 .../solvers/basic/potentialFoam/createFields.H       |  5 ++---
 .../potentialFoam/overPotentialFoam/createFields.H   |  5 ++---
 .../solvers/lagrangian/DPMFoam/createFields.H        |  6 ++++--
 .../icoUncoupledKinematicParcelFoam/createFields.H   |  6 ++++--
 .../uncoupledKinematicParcelFoam/createFields.H      |  2 +-
 .../test/checkDecomposePar/Test-checkDecomposePar.C  |  3 +--
 applications/test/decomposePar/Test-decomposePar.C   | 10 ++++------
 .../externalFileCoupler/Test-externalFileCoupler.C   |  2 +-
 .../test/momentOfInertia/Test-momentOfInertia.C      |  2 +-
 applications/test/spline/Test-spline.C               |  2 +-
 .../surfaceIntersection/Test-surfaceIntersection.C   |  2 +-
 .../surfaceMeshConvert/Test-surfaceMeshConvert.C     |  2 +-
 applications/test/tokenize/Test-tokenize.C           |  2 +-
 .../test/vtkSeriesWriter/Test-vtkSeriesWriter.C      |  2 +-
 .../mesh/advanced/collapseEdges/collapseEdges.C      |  1 -
 .../advanced/combinePatchFaces/combinePatchFaces.C   |  3 +--
 .../utilities/mesh/advanced/splitCells/splitCells.C  |  2 +-
 .../mesh/conversion/ansysToFoam/ansysToFoam.L        |  2 +-
 .../mesh/conversion/ccm/ccmToFoam/ccmToFoam.C        |  2 +-
 .../mesh/conversion/cfx4ToFoam/cfx4ToFoam.C          |  2 +-
 .../mesh/conversion/fireToFoam/fireToFoam.C          |  2 +-
 .../conversion/fluentMeshToFoam/fluentMeshToFoam.L   |  2 +-
 .../mesh/conversion/foamToStarMesh/foamToStarMesh.C  |  2 +-
 .../mesh/conversion/foamToSurface/foamToSurface.C    |  3 +--
 .../mesh/conversion/gambitToFoam/gambitToFoam.L      |  2 +-
 .../mesh/conversion/gmshToFoam/gmshToFoam.C          |  9 ++-------
 .../mesh/conversion/kivaToFoam/kivaToFoam.C          |  6 ++----
 .../mesh/conversion/plot3dToFoam/plot3dToFoam.C      |  2 +-
 .../mesh/conversion/star4ToFoam/star4ToFoam.C        |  2 +-
 .../utilities/mesh/generation/blockMesh/blockMesh.C  |  4 ++--
 .../generation/foamyMesh/foamyHexMesh/foamyHexMesh.C |  4 ++--
 .../foamyHexMeshBackgroundMesh.C                     |  7 +++----
 .../mesh/generation/snappyHexMesh/snappyHexMesh.C    |  4 ++--
 .../mesh/manipulation/checkMesh/checkMesh.C          |  5 +++--
 .../mesh/manipulation/createPatch/createPatch.C      |  2 +-
 .../mesh/manipulation/mergeMeshes/mergeMeshes.C      | 12 ++----------
 .../mesh/manipulation/refineMesh/refineMesh.C        |  2 +-
 .../parallelProcessing/decomposePar/decomposePar.C   |  6 ++----
 .../reconstructParMesh/reconstructParMesh.C          |  3 +--
 .../redistributePar/redistributePar.C                | 11 ++++-------
 .../dataConversion/foamToEnsight/foamToEnsight.C     |  4 ++--
 .../foamToEnsightParts/foamToEnsightParts.C          |  4 ++--
 .../dataConversion/foamToVTK/foamToVTK.C             |  5 ++---
 .../lumped/lumpedPointMovement/lumpedPointMovement.C |  6 +++---
 .../temporalInterpolate/temporalInterpolate.C        | 11 ++++-------
 .../createExternalCoupledPatchGeometry.C             |  2 +-
 .../foamUpgradeCyclics/foamUpgradeCyclics.C          |  6 ++----
 .../utilities/preProcessing/mapFields/mapFields.C    |  2 +-
 .../utilities/surface/surfaceAdd/surfaceAdd.C        |  2 +-
 .../surfaceBooleanFeatures/surfaceBooleanFeatures.C  |  2 +-
 .../utilities/surface/surfaceCheck/surfaceCheck.C    |  6 +++---
 .../utilities/surface/surfaceClean/surfaceClean.C    |  2 +-
 .../surface/surfaceCoarsen/surfaceCoarsen.C          |  2 +-
 .../surface/surfaceConvert/surfaceConvert.C          |  2 +-
 .../utilities/surface/surfaceFind/surfaceFind.C      |  6 +++---
 .../surface/surfaceInertia/surfaceInertia.C          |  2 +-
 .../surface/surfaceInflate/surfaceInflate.C          |  8 ++------
 .../surface/surfaceMeshConvert/surfaceMeshConvert.C  |  2 +-
 .../surface/surfaceMeshExport/surfaceMeshExport.C    |  4 ++--
 .../surface/surfaceMeshImport/surfaceMeshImport.C    |  4 ++--
 .../surface/surfaceMeshInfo/surfaceMeshInfo.C        |  2 +-
 .../utilities/surface/surfaceOrient/surfaceOrient.C  |  2 +-
 .../surface/surfacePointMerge/surfacePointMerge.C    |  2 +-
 .../surfaceRedistributePar/surfaceRedistributePar.C  |  2 +-
 .../surface/surfaceToPatch/surfaceToPatch.C          |  2 +-
 .../functionObjectList/functionObjectList.C          |  7 +++----
 src/OpenFOAM/include/setConstantMeshDictionaryIO.H   |  2 +-
 .../include/setConstantRunTimeDictionaryIO.H         |  2 +-
 src/OpenFOAM/include/setSystemMeshDictionaryIO.H     |  2 +-
 src/OpenFOAM/include/setSystemRunTimeDictionaryIO.H  |  2 +-
 70 files changed, 112 insertions(+), 148 deletions(-)

diff --git a/applications/solvers/basic/potentialFoam/createFields.H b/applications/solvers/basic/potentialFoam/createFields.H
index 5152727b1db..4b3352557ab 100644
--- a/applications/solvers/basic/potentialFoam/createFields.H
+++ b/applications/solvers/basic/potentialFoam/createFields.H
@@ -38,10 +38,9 @@ if (args.found("initialiseUBCs"))
 // Construct a pressure field
 // If it is available read it otherwise construct from the velocity BCs
 // converting fixed-value BCs to zero-gradient and vice versa.
-word pName("p");
 
-// Update name of the pressure field from the command-line option
-args.readIfPresent("pName", pName);
+// Allow override from command-line -pName option
+const word pName = args.opt<word>("pName", "p");
 
 // Infer the pressure BCs from the velocity
 wordList pBCTypes
diff --git a/applications/solvers/basic/potentialFoam/overPotentialFoam/createFields.H b/applications/solvers/basic/potentialFoam/overPotentialFoam/createFields.H
index 67c1c67e59b..80f04a8a68d 100644
--- a/applications/solvers/basic/potentialFoam/overPotentialFoam/createFields.H
+++ b/applications/solvers/basic/potentialFoam/overPotentialFoam/createFields.H
@@ -38,10 +38,9 @@ if (args.found("initialiseUBCs"))
 // Construct a pressure field
 // If it is available read it otherwise construct from the velocity BCs
 // converting fixed-value BCs to zero-gradient and vice versa.
-word pName("p");
 
-// Update name of the pressure field from the command-line option
-args.readIfPresent("pName", pName);
+// Allow override from command-line -pName option
+const word pName = args.opt<word>("pName", "p");
 
 // Infer the pressure BCs from the velocity
 wordList pBCTypes
diff --git a/applications/solvers/lagrangian/DPMFoam/createFields.H b/applications/solvers/lagrangian/DPMFoam/createFields.H
index 527e4651773..07ff05738b8 100644
--- a/applications/solvers/lagrangian/DPMFoam/createFields.H
+++ b/applications/solvers/lagrangian/DPMFoam/createFields.H
@@ -119,8 +119,10 @@ volScalarField alphac
     dimensionedScalar(dimless, Zero)
 );
 
-word kinematicCloudName("kinematicCloud");
-args.readIfPresent("cloud", kinematicCloudName);
+const word kinematicCloudName
+(
+    args.opt<word>("cloud", "kinematicCloud")
+);
 
 Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;
 basicKinematicTypeCloud kinematicCloud
diff --git a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/createFields.H b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/createFields.H
index fe2134e3c8f..1031e81a9a6 100644
--- a/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/icoUncoupledKinematicParcelFoam/createFields.H
@@ -57,8 +57,10 @@ volScalarField mu
     laminarTransport.nu()*rhoInfValue
 );
 
-word kinematicCloudName("kinematicCloud");
-args.readIfPresent("cloud", kinematicCloudName);
+const word kinematicCloudName
+(
+    args.opt<word>("cloud", "kinematicCloud")
+);
 
 Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;
 basicKinematicCollidingCloud kinematicCloud
diff --git a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/createFields.H b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/createFields.H
index e8dd95b2e89..f4675bbdb6f 100644
--- a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/createFields.H
@@ -51,7 +51,7 @@ autoPtr<compressible::turbulenceModel> turbulence
 
 const word kinematicCloudName
 (
-    args.lookupOrDefault<word>("cloud", "kinematicCloud")
+    args.opt<word>("cloud", "kinematicCloud")
 );
 
 Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;
diff --git a/applications/test/checkDecomposePar/Test-checkDecomposePar.C b/applications/test/checkDecomposePar/Test-checkDecomposePar.C
index a34d695b869..c9f8ca34de3 100644
--- a/applications/test/checkDecomposePar/Test-checkDecomposePar.C
+++ b/applications/test/checkDecomposePar/Test-checkDecomposePar.C
@@ -84,8 +84,7 @@ int main(int argc, char *argv[])
     instantList times = timeSelector::selectIfPresent(runTime, args);
 
     // Allow override of decomposeParDict location
-    fileName decompDictFile;
-    args.readIfPresent("decomposeParDict", decompDictFile);
+    const fileName decompDictFile = args.opt<fileName>("decomposeParDict", "");
 
     wordList regionNames;
     wordList regionDirs;
diff --git a/applications/test/decomposePar/Test-decomposePar.C b/applications/test/decomposePar/Test-decomposePar.C
index 4747c4e9ca1..0d925ec96d6 100644
--- a/applications/test/decomposePar/Test-decomposePar.C
+++ b/applications/test/decomposePar/Test-decomposePar.C
@@ -98,8 +98,8 @@ int main(int argc, char *argv[])
     const bool allRegions = args.found("allRegions");
     const bool verbose    = args.found("verbose");
 
-    const label numSubdomains = args.lookupOrDefault<label>("domains", 0);
-    const word methodName = args.lookupOrDefault<word>("method", word::null);
+    const label numSubdomains = args.opt<label>("domains", 0);
+    const word methodName = args.opt<word>("method", word::null);
 
     // Set time from database
     #include "createTime.H"
@@ -107,8 +107,7 @@ int main(int argc, char *argv[])
     instantList times = timeSelector::selectIfPresent(runTime, args);
 
     // Allow override of decomposeParDict location
-    fileName decompDictFile;
-    args.readIfPresent("decomposeParDict", decompDictFile);
+    const fileName decompDictFile = args.opt<fileName>("decomposeParDict", "");
 
     // Get all region names
     wordList regionNames;
@@ -122,8 +121,7 @@ int main(int argc, char *argv[])
     else
     {
         regionNames.resize(1);
-        regionNames.first() =
-            args.lookupOrDefault<word>("region", fvMesh::defaultRegion);
+        regionNames.first() = args.opt<word>("region", fvMesh::defaultRegion);
     }
 
     forAll(regionNames, regioni)
diff --git a/applications/test/externalFileCoupler/Test-externalFileCoupler.C b/applications/test/externalFileCoupler/Test-externalFileCoupler.C
index bd1cad0160b..9b088de46c6 100644
--- a/applications/test/externalFileCoupler/Test-externalFileCoupler.C
+++ b/applications/test/externalFileCoupler/Test-externalFileCoupler.C
@@ -45,7 +45,7 @@ int main(int argc, char *argv[])
 
     #include "setRootCase.H"
 
-    const label maxCount = args.lookupOrDefault<label>("max", 1000);
+    const label maxCount = args.opt<label>("max", 1000);
 
     externalFileCoupler coupler;
 
diff --git a/applications/test/momentOfInertia/Test-momentOfInertia.C b/applications/test/momentOfInertia/Test-momentOfInertia.C
index 201c7e004bd..9cd426a9b7e 100644
--- a/applications/test/momentOfInertia/Test-momentOfInertia.C
+++ b/applications/test/momentOfInertia/Test-momentOfInertia.C
@@ -196,7 +196,7 @@ int main(int argc, char *argv[])
     }
 
     {
-        const label celli = args.lookupOrDefault<label>("cell", 0);
+        const label celli = args.opt<label>("cell", 0);
 
         tensorField mI(momentOfInertia::meshInertia(mesh));
 
diff --git a/applications/test/spline/Test-spline.C b/applications/test/spline/Test-spline.C
index 2e75d267bd4..cb2f99cceb2 100644
--- a/applications/test/spline/Test-spline.C
+++ b/applications/test/spline/Test-spline.C
@@ -65,7 +65,7 @@ int main(int argc, char *argv[])
 
     bool useBSpline = args.found("B");
     bool useCatmullRom = args.found("CMR");
-    const label nSeg = args.lookupOrDefault<label>("n", 20);
+    const label nSeg = args.opt<label>("n", 20);
 
     if (!useCatmullRom && !useBSpline)
     {
diff --git a/applications/test/surfaceIntersection/Test-surfaceIntersection.C b/applications/test/surfaceIntersection/Test-surfaceIntersection.C
index 08c8996882c..1a270158ced 100644
--- a/applications/test/surfaceIntersection/Test-surfaceIntersection.C
+++ b/applications/test/surfaceIntersection/Test-surfaceIntersection.C
@@ -128,7 +128,7 @@ int main(int argc, char *argv[])
     #include "setRootCase.H"
     #include "createTime.H"
 
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", -1);
+    const scalar scaleFactor = args.opt<scalar>("scale", -1);
 
     const word outputFile(args.executable() + ".obj");
 
diff --git a/applications/test/surfaceMeshConvert/Test-surfaceMeshConvert.C b/applications/test/surfaceMeshConvert/Test-surfaceMeshConvert.C
index 74e45613b6c..916ed53f368 100644
--- a/applications/test/surfaceMeshConvert/Test-surfaceMeshConvert.C
+++ b/applications/test/surfaceMeshConvert/Test-surfaceMeshConvert.C
@@ -138,7 +138,7 @@ int main(int argc, char *argv[])
     #include "setRootCase.H"
 
     const bool     optStdout = args.found("stdout");
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", 0);
+    const scalar scaleFactor = args.opt<scalar>("scale", 0);
 
     const fileName importName = args[1];
     const fileName exportName = optStdout ? "-stdout" : args[2];
diff --git a/applications/test/tokenize/Test-tokenize.C b/applications/test/tokenize/Test-tokenize.C
index 1f298eaa7d5..919a5744981 100644
--- a/applications/test/tokenize/Test-tokenize.C
+++ b/applications/test/tokenize/Test-tokenize.C
@@ -51,7 +51,7 @@ int main(int argc, char *argv[])
 
     argList args(argc, argv, false, true);
 
-    const label repeat = args.lookupOrDefault<label>("repeat", 1);
+    const label repeat = args.opt<label>("repeat", 1);
 
     const bool optVerbose = args.found("verbose");
 
diff --git a/applications/test/vtkSeriesWriter/Test-vtkSeriesWriter.C b/applications/test/vtkSeriesWriter/Test-vtkSeriesWriter.C
index 043e42e0349..f97b8facd9b 100644
--- a/applications/test/vtkSeriesWriter/Test-vtkSeriesWriter.C
+++ b/applications/test/vtkSeriesWriter/Test-vtkSeriesWriter.C
@@ -45,7 +45,7 @@ int main(int argc, char *argv[])
 
     argList args(argc, argv, false, true);
 
-    const scalar currTime = args.lookupOrDefault<scalar>("time", GREAT);
+    const scalar currTime = args.opt<scalar>("time", GREAT);
 
     Info<< "Using currTime = " << currTime << nl
         << "when loading " << (args.size()-1) << " files" << nl << nl;
diff --git a/applications/utilities/mesh/advanced/collapseEdges/collapseEdges.C b/applications/utilities/mesh/advanced/collapseEdges/collapseEdges.C
index 7fbcb7c9bd2..edd762a839c 100644
--- a/applications/utilities/mesh/advanced/collapseEdges/collapseEdges.C
+++ b/applications/utilities/mesh/advanced/collapseEdges/collapseEdges.C
@@ -130,7 +130,6 @@ int main(int argc, char *argv[])
     }
 
 
-
     labelIOList pointPriority
     (
         IOobject
diff --git a/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C b/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C
index 1f99e7a44ff..6a6b7836de2 100644
--- a/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C
+++ b/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C
@@ -380,8 +380,7 @@ int main(int argc, char *argv[])
 
     // Sin of angle between two consecutive edges on a face.
     // If sin(angle) larger than this the face will be considered concave.
-    const scalar concaveAngle =
-        args.lookupOrDefault<scalar>("concaveAngle", 30);
+    const scalar concaveAngle = args.opt<scalar>("concaveAngle", 30);
 
     const scalar concaveSin = Foam::sin(degToRad(concaveAngle));
 
diff --git a/applications/utilities/mesh/advanced/splitCells/splitCells.C b/applications/utilities/mesh/advanced/splitCells/splitCells.C
index 068fedefbcf..5a38c2189e5 100644
--- a/applications/utilities/mesh/advanced/splitCells/splitCells.C
+++ b/applications/utilities/mesh/advanced/splitCells/splitCells.C
@@ -566,7 +566,7 @@ int main(int argc, char *argv[])
     const bool geometry  = args.found("geometry");
     const bool overwrite = args.found("overwrite");
 
-    const scalar edgeTol = args.lookupOrDefault<scalar>("tol", 0.2);
+    const scalar edgeTol = args.opt<scalar>("tol", 0.2);
 
     Info<< "Trying to split cells with internal angles > feature angle\n" << nl
         << "featureAngle      : " << featureAngle << nl
diff --git a/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L b/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L
index 796de5b65c8..c275ecec350 100644
--- a/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L
+++ b/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L
@@ -320,7 +320,7 @@ int main(int argc, char *argv[])
         FatalError.exit();
     }
 
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", 1);
+    const scalar scaleFactor = args.opt<scalar>("scale", 1);
 
     #include "createTime.H"
 
diff --git a/applications/utilities/mesh/conversion/ccm/ccmToFoam/ccmToFoam.C b/applications/utilities/mesh/conversion/ccm/ccmToFoam/ccmToFoam.C
index e4a98f81a27..7a55c7a71e1 100644
--- a/applications/utilities/mesh/conversion/ccm/ccmToFoam/ccmToFoam.C
+++ b/applications/utilities/mesh/conversion/ccm/ccmToFoam/ccmToFoam.C
@@ -186,7 +186,7 @@ int main(int argc, char *argv[])
     }
 
     // By default, no scaling
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", 1);
+    const scalar scaleFactor = args.opt<scalar>("scale", 1);
 
     // Default to binary output, unless otherwise specified
     const IOstream::streamFormat format =
diff --git a/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C b/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C
index dcc5dee8665..4d7939a667e 100644
--- a/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C
+++ b/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C
@@ -69,7 +69,7 @@ int main(int argc, char *argv[])
          FatalError.exit();
     }
 
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", 1);
+    const scalar scaleFactor = args.opt<scalar>("scale", 1);
 
     #include "createTime.H"
 
diff --git a/applications/utilities/mesh/conversion/fireToFoam/fireToFoam.C b/applications/utilities/mesh/conversion/fireToFoam/fireToFoam.C
index d9186830e80..dbd3db74c03 100644
--- a/applications/utilities/mesh/conversion/fireToFoam/fireToFoam.C
+++ b/applications/utilities/mesh/conversion/fireToFoam/fireToFoam.C
@@ -103,7 +103,7 @@ int main(int argc, char *argv[])
     (
         args[1],
         // Default no scaling
-        args.lookupOrDefault<scalar>("scale", 1)
+        args.opt<scalar>("scale", 1)
     );
 
 
diff --git a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
index 2a81b4c1a8e..f248a3771c2 100644
--- a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
+++ b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
@@ -902,7 +902,7 @@ int main(int argc, char *argv[])
         FatalError.exit();
     }
 
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", 1);
+    const scalar scaleFactor = args.opt<scalar>("scale", 1);
 
     const bool writeSets  = args.found("writeSets");
     const bool writeZones = args.found("writeZones");
diff --git a/applications/utilities/mesh/conversion/foamToStarMesh/foamToStarMesh.C b/applications/utilities/mesh/conversion/foamToStarMesh/foamToStarMesh.C
index 57a53453696..181daca7cb3 100644
--- a/applications/utilities/mesh/conversion/foamToStarMesh/foamToStarMesh.C
+++ b/applications/utilities/mesh/conversion/foamToStarMesh/foamToStarMesh.C
@@ -96,7 +96,7 @@ int main(int argc, char *argv[])
     }
 
     // Default rescale from [m] to [mm]
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", 1000);
+    const scalar scaleFactor = args.opt<scalar>("scale", 1000);
     const bool  writeBndFile = !args.found("noBnd");
 
     #include "createPolyMesh.H"
diff --git a/applications/utilities/mesh/conversion/foamToSurface/foamToSurface.C b/applications/utilities/mesh/conversion/foamToSurface/foamToSurface.C
index eea517725cf..26e404fc11f 100644
--- a/applications/utilities/mesh/conversion/foamToSurface/foamToSurface.C
+++ b/applications/utilities/mesh/conversion/foamToSurface/foamToSurface.C
@@ -81,8 +81,7 @@ int main(int argc, char *argv[])
 
     fileName exportName = args[1];
 
-    scalar scaleFactor = 0;
-    args.readIfPresent<scalar>("scale", scaleFactor);
+    const scalar scaleFactor = args.opt<scalar>("scale", 0);
     const bool doTriangulate = args.found("tri");
 
     fileName exportBase = exportName.lessExt();
diff --git a/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L b/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L
index c51a01ab806..e1493c8c377 100644
--- a/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L
+++ b/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L
@@ -646,7 +646,7 @@ int main(int argc, char *argv[])
          FatalError.exit();
     }
 
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", 1);
+    const scalar scaleFactor = args.opt<scalar>("scale", 1);
 
     #include "createTime.H"
 
diff --git a/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C b/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C
index acafed87c55..b91672b1623 100644
--- a/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C
+++ b/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C
@@ -784,16 +784,11 @@ int main(int argc, char *argv[])
     #include "setRootCase.H"
     #include "createTime.H"
 
-    Foam::word regionName;
+    word regionName = polyMesh::defaultRegion;
 
     if (args.readIfPresent("region", regionName))
     {
-        Foam::Info
-            << "Creating polyMesh for region " << regionName << endl;
-    }
-    else
-    {
-        regionName = Foam::polyMesh::defaultRegion;
+        Info<< "Creating polyMesh for region " << regionName << endl;
     }
 
     const bool keepOrientation = args.found("keepOrientation");
diff --git a/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C b/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C
index 8f64f5e616e..85d8a99b2e4 100644
--- a/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C
+++ b/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C
@@ -85,8 +85,7 @@ int main(int argc, char *argv[])
     #include "setRootCase.H"
     #include "createTime.H"
 
-    const fileName kivaFileName =
-        args.lookupOrDefault<fileName>("file", "otape17");
+    const fileName kivaFileName = args.opt<fileName>("file", "otape17");
 
     kivaVersions kivaVersion = kiva3v;
     if (args.found("version"))
@@ -112,8 +111,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    scalar zHeadMin = -GREAT;
-    args.readIfPresent("zHeadMin", zHeadMin);
+    const scalar zHeadMin = args.opt<scalar>("zHeadMin", -GREAT);
 
     #include "readKivaGrid.H"
 
diff --git a/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C b/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C
index 69c00af00a8..d0254c0cea4 100644
--- a/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C
+++ b/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C
@@ -94,7 +94,7 @@ int main(int argc, char *argv[])
          FatalError.exit();
     }
 
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", 1);
+    const scalar scaleFactor = args.opt<scalar>("scale", 1);
 
     const bool readBlank = !args.found("noBlank");
     const bool singleBlock = args.found("singleBlock");
diff --git a/applications/utilities/mesh/conversion/star4ToFoam/star4ToFoam.C b/applications/utilities/mesh/conversion/star4ToFoam/star4ToFoam.C
index ae79053150a..e7b21dd1ee9 100644
--- a/applications/utilities/mesh/conversion/star4ToFoam/star4ToFoam.C
+++ b/applications/utilities/mesh/conversion/star4ToFoam/star4ToFoam.C
@@ -113,7 +113,7 @@ int main(int argc, char *argv[])
         prefix,
         runTime,
         // Default rescale from [mm] to [m]
-        args.lookupOrDefault<scalar>("scale", 0.001),
+        args.opt<scalar>("scale", 0.001),
         args.found("solids")
     );
 
diff --git a/applications/utilities/mesh/generation/blockMesh/blockMesh.C b/applications/utilities/mesh/generation/blockMesh/blockMesh.C
index e4cb0fad35c..d853528b5ef 100644
--- a/applications/utilities/mesh/generation/blockMesh/blockMesh.C
+++ b/applications/utilities/mesh/generation/blockMesh/blockMesh.C
@@ -139,11 +139,11 @@ int main(int argc, char *argv[])
     #include "setRootCase.H"
     #include "createTime.H"
 
-    word regionName;
+    word regionName = polyMesh::defaultRegion;
     word regionPath;
 
     // Check if the region is specified otherwise mesh the default region
-    if (args.readIfPresent("region", regionName, polyMesh::defaultRegion))
+    if (args.readIfPresent("region", regionName))
     {
         Info<< nl << "Generating mesh for region " << regionName << endl;
         regionPath = regionName;
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/foamyHexMesh.C b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/foamyHexMesh.C
index 3c2a8be40a8..76e378ce0fc 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/foamyHexMesh.C
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/foamyHexMesh.C
@@ -70,8 +70,8 @@ int main(int argc, char *argv[])
     const bool conformationOnly = args.found("conformationOnly");
 
     // Allow override of decomposeParDict location
-    fileName decompDictFile;
-    args.readIfPresent("decomposeParDict", decompDictFile);
+    const fileName decompDictFile =
+        args.opt<fileName>("decomposeParDict", "");
 
     IOdictionary foamyHexMeshDict
     (
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C
index 92b465c6195..ffdfd134114 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C
@@ -61,8 +61,7 @@ scalar getMergeDistance
     const boundBox& bb
 )
 {
-    scalar mergeTol = defaultMergeTol;
-    args.readIfPresent("mergeTol", mergeTol);
+    const scalar mergeTol = args.opt<scalar>("mergeTol", defaultMergeTol);
 
     scalar writeTol =
         Foam::pow(scalar(10), -scalar(IOstream::defaultPrecision()));
@@ -519,8 +518,8 @@ int main(int argc, char *argv[])
         printMeshData(mesh);
 
         // Allow override of decomposeParDict location
-        fileName decompDictFile;
-        args.readIfPresent("decomposeParDict", decompDictFile);
+        const fileName decompDictFile =
+            args.opt<fileName>("decomposeParDict", "");
 
         labelList decomp = decompositionModel::New
         (
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
index 60ba3f5463a..0656083505d 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
+++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
@@ -823,7 +823,7 @@ int main(int argc, char *argv[])
                     IOobject::MUST_READ,
                     IOobject::NO_WRITE
                 ),
-                args.lookupOrDefault<fileName>("decomposeParDict", "")
+                args.opt<fileName>("decomposeParDict", "")
             )
         );
 
@@ -1700,7 +1700,7 @@ int main(int argc, char *argv[])
 
         fileName outFileName
         (
-            args.lookupOrDefault<fileName>
+            args.opt<fileName>
             (
                 "outFile",
                 "constant/triSurface/simplifiedSurface.stl"
diff --git a/applications/utilities/mesh/manipulation/checkMesh/checkMesh.C b/applications/utilities/mesh/manipulation/checkMesh/checkMesh.C
index c86db130f2c..4b68609de6e 100644
--- a/applications/utilities/mesh/manipulation/checkMesh/checkMesh.C
+++ b/applications/utilities/mesh/manipulation/checkMesh/checkMesh.C
@@ -136,8 +136,9 @@ int main(int argc, char *argv[])
     const bool allTopology = args.found("allTopology");
     const bool meshQuality = args.found("meshQuality");
 
-    word surfaceFormat;
-    const bool writeSets = args.readIfPresent("writeSets", surfaceFormat);
+    const word surfaceFormat = args.opt<word>("writeSets", "");
+    const bool writeSets = surfaceFormat.size();
+
     wordHashSet selectedFields;
     bool writeFields = args.readIfPresent
     (
diff --git a/applications/utilities/mesh/manipulation/createPatch/createPatch.C b/applications/utilities/mesh/manipulation/createPatch/createPatch.C
index d3acb0013da..d85cf460bdb 100644
--- a/applications/utilities/mesh/manipulation/createPatch/createPatch.C
+++ b/applications/utilities/mesh/manipulation/createPatch/createPatch.C
@@ -531,7 +531,7 @@ int main(int argc, char *argv[])
     #include "createTime.H"
 
     const word meshRegionName =
-        args.lookupOrDefault<word>("region", polyMesh::defaultRegion);
+        args.opt<word>("region", polyMesh::defaultRegion);
 
     const bool overwrite = args.found("overwrite");
 
diff --git a/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.C b/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.C
index 74101860ca8..eaecaa001e8 100644
--- a/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.C
+++ b/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.C
@@ -103,18 +103,10 @@ int main(int argc, char *argv[])
     fileName addCase = args[2];
 
     const word masterRegion =
-        args.lookupOrDefault<word>
-        (
-            "masterRegion",
-            polyMesh::defaultRegion
-        );
+        args.opt<word>("masterRegion", polyMesh::defaultRegion);
 
     const word addRegion =
-        args.lookupOrDefault<word>
-        (
-            "addRegion",
-            polyMesh::defaultRegion
-        );
+        args.opt<word>("addRegion", polyMesh::defaultRegion);
 
     // Since we don't use argList processor directory detection, add it to
     // the casename ourselves so it triggers the logic inside TimePath.
diff --git a/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C b/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C
index ba8d12844e7..98f2bebe2ca 100644
--- a/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C
+++ b/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C
@@ -199,7 +199,7 @@ int main(int argc, char *argv[])
         const word dictName("refineMeshDict");
 
         // Obtain dictPath here for messages
-        fileName dictPath = args.lookupOrDefault<fileName>("dict", "");
+        fileName dictPath = args.opt<fileName>("dict", "");
 
         IOobject dictIO = IOobject::selectIO
         (
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index beed8776ae2..1d977e80626 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -327,8 +327,7 @@ int main(int argc, char *argv[])
 
 
     // Allow override of decomposeParDict location
-    fileName decompDictFile;
-    args.readIfPresent("decomposeParDict", decompDictFile);
+    const fileName decompDictFile = args.opt<fileName>("decomposeParDict", "");
 
     // Get all region names
     wordList regionNames;
@@ -342,8 +341,7 @@ int main(int argc, char *argv[])
     else
     {
         regionNames.resize(1);
-        regionNames.first() =
-            args.lookupOrDefault<word>("region", fvMesh::defaultRegion);
+        regionNames.first() = args.opt<word>("region", fvMesh::defaultRegion);
     }
 
     forAll(regionNames, regioni)
diff --git a/applications/utilities/parallelProcessing/reconstructParMesh/reconstructParMesh.C b/applications/utilities/parallelProcessing/reconstructParMesh/reconstructParMesh.C
index 072535b47fd..be8fff4a00d 100644
--- a/applications/utilities/parallelProcessing/reconstructParMesh/reconstructParMesh.C
+++ b/applications/utilities/parallelProcessing/reconstructParMesh/reconstructParMesh.C
@@ -506,8 +506,7 @@ int main(int argc, char *argv[])
         Info<< "Operating on region " << regionName << nl << endl;
     }
 
-    scalar mergeTol = defaultMergeTol;
-    args.readIfPresent("mergeTol", mergeTol);
+    const scalar mergeTol = args.opt<scalar>("mergeTol", defaultMergeTol);
 
     scalar writeTol = Foam::pow(10.0, -scalar(IOstream::defaultPrecision()));
 
diff --git a/applications/utilities/parallelProcessing/redistributePar/redistributePar.C b/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
index 7cd4726305e..7e094408ec0 100644
--- a/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
+++ b/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
@@ -114,8 +114,7 @@ scalar getMergeDistance
     const boundBox& bb
 )
 {
-    scalar mergeTol = defaultMergeTol;
-    args.readIfPresent("mergeTol", mergeTol);
+    const scalar mergeTol = args.opt<scalar>("mergeTol", defaultMergeTol);
 
     const scalar writeTol =
         Foam::pow(scalar(10), -scalar(IOstream::defaultPrecision()));
@@ -136,7 +135,7 @@ scalar getMergeDistance
             << exit(FatalError);
     }
 
-    scalar mergeDist = mergeTol * bb.mag();
+    const scalar mergeDist = mergeTol * bb.mag();
 
     Info<< "Overall meshes bounding box : " << bb << nl
         << "Relative tolerance          : " << mergeTol << nl
@@ -2497,8 +2496,7 @@ int main(int argc, char *argv[])
 
 
     // Allow override of decomposeParDict location
-    fileName decompDictFile;
-    args.readIfPresent("decomposeParDict", decompDictFile);
+    const fileName decompDictFile = args.opt<fileName>("decomposeParDict", "");
 
     // Get all region names
     wordList regionNames;
@@ -2512,8 +2510,7 @@ int main(int argc, char *argv[])
     else
     {
         regionNames.resize(1);
-        regionNames.first() =
-            args.lookupOrDefault<word>("region", fvMesh::defaultRegion);
+        regionNames.first() = args.opt<word>("region", fvMesh::defaultRegion);
     }
 
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
index afc95c7f533..c842f24c93f 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
@@ -237,7 +237,7 @@ int main(int argc, char *argv[])
     ensightCase::options caseOpts(format);
 
     caseOpts.nodeValues(args.found("nodeValues"));
-    caseOpts.width(args.lookupOrDefault<label>("width", 8));
+    caseOpts.width(args.opt<label>("width", 8));
     caseOpts.overwrite(true); // remove existing output directory
 
     // Can also have separate directory for lagrangian
@@ -247,7 +247,7 @@ int main(int argc, char *argv[])
     // Define sub-directory name to use for EnSight data.
     // The path to the ensight directory is at case level only
     // - For parallel cases, data only written from master
-    fileName outputDir = args.lookupOrDefault<word>("name", "EnSight");
+    fileName outputDir = args.opt<word>("name", "EnSight");
     if (!outputDir.isAbsolute())
     {
         outputDir = args.globalPath()/outputDir;
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C
index 19e1e7ab239..4aa572c4364 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C
@@ -203,7 +203,7 @@ int main(int argc, char *argv[])
     //
     ensightCase::options caseOpts(format);
 
-    caseOpts.width(args.lookupOrDefault<label>("width", 8));
+    caseOpts.width(args.opt<label>("width", 8));
     caseOpts.overwrite(false); // leave existing output directory
 
     // Can also have separate directory for lagrangian
@@ -212,7 +212,7 @@ int main(int argc, char *argv[])
     // Define sub-directory name to use for EnSight data.
     // The path to the ensight directory is at case level only
     // - For parallel cases, data only written from master
-    fileName ensightDir = args.lookupOrDefault<word>("name", "Ensight");
+    fileName ensightDir = args.opt<word>("name", "Ensight");
     if (!ensightDir.isAbsolute())
     {
         ensightDir = args.globalPath()/ensightDir;
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
index f79efb579a1..3d405cdf3e4 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C
@@ -564,8 +564,7 @@ int main(int argc, char *argv[])
     else
     {
         regionNames.resize(1);
-        regionNames.first() =
-            args.lookupOrDefault<word>("region", fvMesh::defaultRegion);
+        regionNames.first() = args.opt<word>("region", fvMesh::defaultRegion);
     }
 
 
@@ -627,7 +626,7 @@ int main(int argc, char *argv[])
     // Directory management
 
     // Sub-directory for output
-    const word vtkDirName = args.lookupOrDefault<word>("name", "VTK");
+    const word vtkDirName = args.opt<word>("name", "VTK");
 
     const fileName outputDir(runTime.globalPath()/vtkDirName);
 
diff --git a/applications/utilities/postProcessing/lumped/lumpedPointMovement/lumpedPointMovement.C b/applications/utilities/postProcessing/lumped/lumpedPointMovement/lumpedPointMovement.C
index 62218445045..9d94cf79e78 100644
--- a/applications/utilities/postProcessing/lumped/lumpedPointMovement/lumpedPointMovement.C
+++ b/applications/utilities/postProcessing/lumped/lumpedPointMovement/lumpedPointMovement.C
@@ -91,10 +91,10 @@ int main(int argc, char *argv[])
 
     #include "setRootCase.H"
 
-    const label maxOut = Foam::max(0, args.lookupOrDefault<label>("max", 0));
-    const label span   = Foam::max(1, args.lookupOrDefault<label>("span", 1));
+    const label maxOut = Foam::max(0, args.opt<label>("max", 0));
+    const label span   = Foam::max(1, args.opt<label>("span", 1));
 
-    const scalar relax = args.lookupOrDefault<scalar>("scale", 1);
+    const scalar relax = args.opt<scalar>("scale", 1);
 
     const bool slave = args.found("slave");
     const bool removeLock = args.found("removeLock");
diff --git a/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/temporalInterpolate.C b/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/temporalInterpolate.C
index 3ddf0f82524..f40dc5bf8b5 100644
--- a/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/temporalInterpolate.C
+++ b/applications/utilities/postProcessing/miscellaneous/temporalInterpolate/temporalInterpolate.C
@@ -234,16 +234,13 @@ int main(int argc, char *argv[])
     }
 
 
-    int divisions = 1;
-    args.readIfPresent("divisions", divisions);
+    const int divisions = args.opt<int>("divisions", 1);
     Info<< "Using " << divisions << " per time interval" << nl << endl;
 
 
-    const word interpolationType = args.lookupOrDefault<word>
-    (
-        "interpolationType",
-        "linear"
-    );
+    const word interpolationType =
+        args.opt<word>("interpolationType", "linear");
+
     Info<< "Using interpolation " << interpolationType << nl << endl;
 
 
diff --git a/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/createExternalCoupledPatchGeometry.C b/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/createExternalCoupledPatchGeometry.C
index b318fedb947..2312e19d5f1 100644
--- a/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/createExternalCoupledPatchGeometry.C
+++ b/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/createExternalCoupledPatchGeometry.C
@@ -87,7 +87,7 @@ int main(int argc, char *argv[])
     #include "createTime.H"
 
     wordList regionNames(1, fvMesh::defaultRegion);
-    if (!args.readIfPresent("region", regionNames[0]))
+    if (!args.readIfPresent("region", regionNames.first()))
     {
         args.readIfPresent("regions", regionNames);
     }
diff --git a/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C b/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C
index 320557b7d84..7a6455a7724 100644
--- a/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C
+++ b/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C
@@ -431,11 +431,9 @@ int main(int argc, char *argv[])
     }
     const bool enableEntries = args.found("enableFunctionEntries");
 
+    const word regionName = args.opt<word>("region", polyMesh::defaultRegion);
 
-    Foam::word regionName = polyMesh::defaultRegion;
-    args.readIfPresent("region", regionName);
-
-    fileName regionPrefix = "";
+    fileName regionPrefix;
     if (regionName != polyMesh::defaultRegion)
     {
         regionPrefix = regionName;
diff --git a/applications/utilities/preProcessing/mapFields/mapFields.C b/applications/utilities/preProcessing/mapFields/mapFields.C
index 649e908d6a8..203134c8942 100644
--- a/applications/utilities/preProcessing/mapFields/mapFields.C
+++ b/applications/utilities/preProcessing/mapFields/mapFields.C
@@ -66,7 +66,7 @@ int readNumProcs
                     IOobject::NO_WRITE,
                     false // do not register
                 ),
-                args.lookupOrDefault<fileName>(optionName, "")
+                args.opt<fileName>(optionName, "")
             )
         )
     );
diff --git a/applications/utilities/surface/surfaceAdd/surfaceAdd.C b/applications/utilities/surface/surfaceAdd/surfaceAdd.C
index c63d01cbbc2..6477e44f9cd 100644
--- a/applications/utilities/surface/surfaceAdd/surfaceAdd.C
+++ b/applications/utilities/surface/surfaceAdd/surfaceAdd.C
@@ -87,7 +87,7 @@ int main(int argc, char *argv[])
     const bool addPoint     = args.found("points");
     const bool mergeRegions = args.found("mergeRegions");
 
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", -1);
+    const scalar scaleFactor = args.opt<scalar>("scale", -1);
 
     if (addPoint)
     {
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
index c958d686fdc..808f552ff45 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
+++ b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
@@ -1593,7 +1593,7 @@ int main(int argc, char *argv[])
 
 
     // Scale factor for both surfaces:
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", -1);
+    const scalar scaleFactor = args.opt<scalar>("scale", -1);
 
     const word surf1Name(args[2]);
     Info<< "Reading surface " << surf1Name << endl;
diff --git a/applications/utilities/surface/surfaceCheck/surfaceCheck.C b/applications/utilities/surface/surfaceCheck/surfaceCheck.C
index af3fa2c6ce2..a131d11c4c8 100644
--- a/applications/utilities/surface/surfaceCheck/surfaceCheck.C
+++ b/applications/utilities/surface/surfaceCheck/surfaceCheck.C
@@ -366,9 +366,9 @@ int main(int argc, char *argv[])
     const fileName surfFileName = args[1];
     const bool checkSelfIntersect = args.found("checkSelfIntersection");
     const bool splitNonManifold = args.found("splitNonManifold");
-    const label outputThreshold = args.lookupOrDefault("outputThreshold", 10);
-    word surfaceFormat;
-    const bool writeSets = args.readIfPresent("writeSets", surfaceFormat);
+    const label outputThreshold = args.opt<label>("outputThreshold", 10);
+    const word surfaceFormat = args.opt<word>("writeSets", "");
+    const bool writeSets = !surfaceFormat.empty();
 
     autoPtr<surfaceWriter> surfWriter;
     word edgeFormat;
diff --git a/applications/utilities/surface/surfaceClean/surfaceClean.C b/applications/utilities/surface/surfaceClean/surfaceClean.C
index c4cca5fb6f8..39249b3b020 100644
--- a/applications/utilities/surface/surfaceClean/surfaceClean.C
+++ b/applications/utilities/surface/surfaceClean/surfaceClean.C
@@ -94,7 +94,7 @@ int main(int argc, char *argv[])
     triSurface surf
     (
         inFileName,
-        args.lookupOrDefault<scalar>("scale", -1)
+        args.opt<scalar>("scale", -1)
     );
     surf.writeStats(Info);
 
diff --git a/applications/utilities/surface/surfaceCoarsen/surfaceCoarsen.C b/applications/utilities/surface/surfaceCoarsen/surfaceCoarsen.C
index 45dc24cfab4..3fbc14c865f 100644
--- a/applications/utilities/surface/surfaceCoarsen/surfaceCoarsen.C
+++ b/applications/utilities/surface/surfaceCoarsen/surfaceCoarsen.C
@@ -102,7 +102,7 @@ int main(int argc, char *argv[])
             << exit(FatalError);
     }
 
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", -1);
+    const scalar scaleFactor = args.opt<scalar>("scale", -1);
 
     Info<< "Input surface   :" << inFileName << nl
         << "Scaling factor  :" << scaleFactor << nl
diff --git a/applications/utilities/surface/surfaceConvert/surfaceConvert.C b/applications/utilities/surface/surfaceConvert/surfaceConvert.C
index c7dfe7e93b7..001f163fa7a 100644
--- a/applications/utilities/surface/surfaceConvert/surfaceConvert.C
+++ b/applications/utilities/surface/surfaceConvert/surfaceConvert.C
@@ -125,7 +125,7 @@ int main(int argc, char *argv[])
         return 1;
     }
 
-    const scalar scaleFactor = args.lookupOrDefault<scalar>("scale", -1);
+    const scalar scaleFactor = args.opt<scalar>("scale", -1);
 
     Info<< "Reading : " << importName << endl;
     triSurface surf(importName, scaleFactor);
diff --git a/applications/utilities/surface/surfaceFind/surfaceFind.C b/applications/utilities/surface/surfaceFind/surfaceFind.C
index 0a48bcf7070..489dd652a93 100644
--- a/applications/utilities/surface/surfaceFind/surfaceFind.C
+++ b/applications/utilities/surface/surfaceFind/surfaceFind.C
@@ -61,9 +61,9 @@ int main(int argc, char *argv[])
 
     const point samplePt
     (
-        args.lookupOrDefault<scalar>("x", 0),
-        args.lookupOrDefault<scalar>("y", 0),
-        args.lookupOrDefault<scalar>("z", 0)
+        args.opt<scalar>("x", 0),
+        args.opt<scalar>("y", 0),
+        args.opt<scalar>("z", 0)
     );
     Info<< "Looking for nearest face/vertex to " << samplePt << endl;
 
diff --git a/applications/utilities/surface/surfaceInertia/surfaceInertia.C b/applications/utilities/surface/surfaceInertia/surfaceInertia.C
index cb1d5a583d7..39c24ff7599 100644
--- a/applications/utilities/surface/surfaceInertia/surfaceInertia.C
+++ b/applications/utilities/surface/surfaceInertia/surfaceInertia.C
@@ -86,7 +86,7 @@ int main(int argc, char *argv[])
     argList args(argc, argv);
 
     const fileName surfFileName = args[1];
-    const scalar density = args.lookupOrDefault<scalar>("density", 1);
+    const scalar density = args.opt<scalar>("density", 1);
 
     vector refPt = Zero;
     bool calcAroundRefPt = args.readIfPresent("referencePoint", refPt);
diff --git a/applications/utilities/surface/surfaceInflate/surfaceInflate.C b/applications/utilities/surface/surfaceInflate/surfaceInflate.C
index 0b1cfff730a..1036ff46c59 100644
--- a/applications/utilities/surface/surfaceInflate/surfaceInflate.C
+++ b/applications/utilities/surface/surfaceInflate/surfaceInflate.C
@@ -610,12 +610,8 @@ int main(int argc, char *argv[])
     const scalar distance(args.get<scalar>(2));
     const scalar extendFactor(args.get<scalar>(3));
     const bool checkSelfIntersect = args.found("checkSelfIntersection");
-    const label nSmooth = args.lookupOrDefault("nSmooth", 10);
-    const scalar featureAngle = args.lookupOrDefault<scalar>
-    (
-        "featureAngle",
-        180
-    );
+    const label nSmooth = args.opt<label>("nSmooth", 10);
+    const scalar featureAngle = args.opt<scalar>("featureAngle", 180);
     const bool debug = args.found("debug");
 
 
diff --git a/applications/utilities/surface/surfaceMeshConvert/surfaceMeshConvert.C b/applications/utilities/surface/surfaceMeshConvert/surfaceMeshConvert.C
index 8c16582efeb..b66a397f2bb 100644
--- a/applications/utilities/surface/surfaceMeshConvert/surfaceMeshConvert.C
+++ b/applications/utilities/surface/surfaceMeshConvert/surfaceMeshConvert.C
@@ -164,7 +164,7 @@ int main(int argc, char *argv[])
                 IOobject::NO_WRITE,
                 false
             ),
-            args.lookupOrDefault<fileName>("dict", "")
+            args.opt<fileName>("dict", "")
         );
 
         if (!ioCsys.typeHeaderOk<coordinateSystems>(false))
diff --git a/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C b/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C
index 378c67ab98f..8498eb124e0 100644
--- a/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C
+++ b/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C
@@ -127,7 +127,7 @@ int main(int argc, char *argv[])
     Time runTime(args.rootPath(), args.caseName());
 
     const fileName exportName = args[1];
-    const word importName = args.lookupOrDefault<word>("name", "default");
+    const word importName = args.opt<word>("name", "default");
 
     // check that writing is supported
     if (!MeshedSurface<face>::canWriteType(exportName.ext(), true))
@@ -153,7 +153,7 @@ int main(int argc, char *argv[])
                 IOobject::NO_WRITE,
                 false
             ),
-            args.lookupOrDefault<fileName>("dict", "")
+            args.opt<fileName>("dict", "")
         );
 
         if (!ioCsys.typeHeaderOk<coordinateSystems>(false))
diff --git a/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C b/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C
index 58522810308..eb8cb700a03 100644
--- a/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C
+++ b/applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C
@@ -140,7 +140,7 @@ int main(int argc, char *argv[])
 
 
     const fileName importName = args[1];
-    const word exportName = args.lookupOrDefault<word>("name", "default");
+    const word exportName = args.opt<word>("name", "default");
 
     // check that reading is supported
     if (!MeshedSurface<face>::canRead(importName, true))
@@ -166,7 +166,7 @@ int main(int argc, char *argv[])
                 IOobject::NO_WRITE,
                 false
             ),
-            args.lookupOrDefault<fileName>("dict", "")
+            args.opt<fileName>("dict", "")
         );
 
         if (!ioCsys.typeHeaderOk<coordinateSystems>(false))
diff --git a/applications/utilities/surface/surfaceMeshInfo/surfaceMeshInfo.C b/applications/utilities/surface/surfaceMeshInfo/surfaceMeshInfo.C
index 8ec2662ad35..9a997251222 100644
--- a/applications/utilities/surface/surfaceMeshInfo/surfaceMeshInfo.C
+++ b/applications/utilities/surface/surfaceMeshInfo/surfaceMeshInfo.C
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
     // use UnsortedMeshedSurface, not MeshedSurface to maintain ordering
     UnsortedMeshedSurface<face> surf(importName);
 
-    const scalar scaling = args.lookupOrDefault<scalar>("scale", -1);
+    const scalar scaling = args.opt<scalar>("scale", -1);
     if (scaling > 0)
     {
         DetailInfo << " -scale " << scaling << nl;
diff --git a/applications/utilities/surface/surfaceOrient/surfaceOrient.C b/applications/utilities/surface/surfaceOrient/surfaceOrient.C
index edb096802d6..8d3127e77d2 100644
--- a/applications/utilities/surface/surfaceOrient/surfaceOrient.C
+++ b/applications/utilities/surface/surfaceOrient/surfaceOrient.C
@@ -93,7 +93,7 @@ int main(int argc, char *argv[])
         Info<< "outside" << endl;
     }
 
-    const scalar scaling = args.lookupOrDefault<scalar>("scale", -1);
+    const scalar scaling = args.opt<scalar>("scale", -1);
     if (scaling > 0)
     {
         Info<< "Input scaling: " << scaling << nl;
diff --git a/applications/utilities/surface/surfacePointMerge/surfacePointMerge.C b/applications/utilities/surface/surfacePointMerge/surfacePointMerge.C
index 5e7dfdd87e1..8e552cc73e0 100644
--- a/applications/utilities/surface/surfacePointMerge/surfacePointMerge.C
+++ b/applications/utilities/surface/surfacePointMerge/surfacePointMerge.C
@@ -68,7 +68,7 @@ int main(int argc, char *argv[])
     const scalar   mergeTol = args.get<scalar>(2);
     const fileName outFileName = args[3];
 
-    const scalar scaling = args.lookupOrDefault<scalar>("scale", -1);
+    const scalar scaling = args.opt<scalar>("scale", -1);
 
     Info<< "Reading surface from " << surfFileName << " ..." << nl
         << "Merging points within " << mergeTol << " metre." << nl;
diff --git a/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C b/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C
index 2853f651a30..5890dbbcc4a 100644
--- a/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C
+++ b/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C
@@ -174,7 +174,7 @@ int main(int argc, char *argv[])
                     IOobject::MUST_READ,
                     IOobject::NO_WRITE
                 ),
-                args.lookupOrDefault<fileName>("decomposeParDict", "")
+                args.opt<fileName>("decomposeParDict", "")
             )
         );
 
diff --git a/applications/utilities/surface/surfaceToPatch/surfaceToPatch.C b/applications/utilities/surface/surfaceToPatch/surfaceToPatch.C
index fb9ca82c019..58aecc61805 100644
--- a/applications/utilities/surface/surfaceToPatch/surfaceToPatch.C
+++ b/applications/utilities/surface/surfaceToPatch/surfaceToPatch.C
@@ -211,7 +211,7 @@ int main(int argc, char *argv[])
             << " triangle ..." << endl;
     }
 
-    const scalar searchTol = args.lookupOrDefault("tol", 1e-3);
+    const scalar searchTol = args.opt<scalar>("tol", 1e-3);
 
     // Get search box. Anything not within this box will not be considered.
     const boundBox& meshBb = mesh.bounds();
diff --git a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
index 1410bdad006..baafa87b74c 100644
--- a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
+++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
@@ -385,8 +385,7 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New
 
     dictionary& functionsDict = controlDict.subDict("functions");
 
-    word region;
-    args.readIfPresent("region", region);
+    const word regionName = args.opt<word>("region", "");
 
     bool modifiedControlDict = false;
 
@@ -417,7 +416,7 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New
             args["func"],
             functionsDict,
             requiredFields,
-            region
+            regionName
         );
     }
 
@@ -434,7 +433,7 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New
                 funcName,
                 functionsDict,
                 requiredFields,
-                region
+                regionName
             );
         }
     }
diff --git a/src/OpenFOAM/include/setConstantMeshDictionaryIO.H b/src/OpenFOAM/include/setConstantMeshDictionaryIO.H
index 84be1121c2a..4174f54f4fc 100644
--- a/src/OpenFOAM/include/setConstantMeshDictionaryIO.H
+++ b/src/OpenFOAM/include/setConstantMeshDictionaryIO.H
@@ -8,5 +8,5 @@ IOobject dictIO = IOobject::selectIO
         IOobject::MUST_READ_IF_MODIFIED,
         IOobject::NO_WRITE
     ),
-    args.lookupOrDefault<fileName>("dict", "")
+    args.opt<fileName>("dict", "")
 );
diff --git a/src/OpenFOAM/include/setConstantRunTimeDictionaryIO.H b/src/OpenFOAM/include/setConstantRunTimeDictionaryIO.H
index 7333f2b54d3..ce1b8dd1dcb 100644
--- a/src/OpenFOAM/include/setConstantRunTimeDictionaryIO.H
+++ b/src/OpenFOAM/include/setConstantRunTimeDictionaryIO.H
@@ -8,5 +8,5 @@ IOobject dictIO = IOobject::selectIO
         IOobject::MUST_READ_IF_MODIFIED,
         IOobject::NO_WRITE
     ),
-    args.lookupOrDefault<fileName>("dict", "")
+    args.opt<fileName>("dict", "")
 );
diff --git a/src/OpenFOAM/include/setSystemMeshDictionaryIO.H b/src/OpenFOAM/include/setSystemMeshDictionaryIO.H
index 02d264b2d96..33ea27f46ad 100644
--- a/src/OpenFOAM/include/setSystemMeshDictionaryIO.H
+++ b/src/OpenFOAM/include/setSystemMeshDictionaryIO.H
@@ -8,5 +8,5 @@ IOobject dictIO = IOobject::selectIO
         IOobject::MUST_READ_IF_MODIFIED,
         IOobject::NO_WRITE
     ),
-    args.lookupOrDefault<fileName>("dict", "")
+    args.opt<fileName>("dict", "")
 );
diff --git a/src/OpenFOAM/include/setSystemRunTimeDictionaryIO.H b/src/OpenFOAM/include/setSystemRunTimeDictionaryIO.H
index 98d4f1d551f..0be3e435ec7 100644
--- a/src/OpenFOAM/include/setSystemRunTimeDictionaryIO.H
+++ b/src/OpenFOAM/include/setSystemRunTimeDictionaryIO.H
@@ -8,5 +8,5 @@ IOobject dictIO = IOobject::selectIO
         IOobject::MUST_READ_IF_MODIFIED,
         IOobject::NO_WRITE
     ),
-    args.lookupOrDefault<fileName>("dict", "")
+    args.opt<fileName>("dict", "")
 );
-- 
GitLab