diff --git a/applications/solvers/combustion/XiFoam/XiDyMFoam/createControls.H b/applications/solvers/combustion/XiFoam/XiDyMFoam/createControls.H
index aed0e76956bb40c41b7cbf25aea54d7a77a03b67..4c888d9e3a1d5125783f8898dea8548e96a4a584 100644
--- a/applications/solvers/combustion/XiFoam/XiDyMFoam/createControls.H
+++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/createControls.H
@@ -2,10 +2,10 @@
 
 bool correctPhi
 (
-    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
+    pimple.dict().lookupOrDefault("correctPhi", true)
 );
 
 bool checkMeshCourantNo
 (
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
 );
diff --git a/applications/solvers/combustion/XiFoam/XiDyMFoam/readControls.H b/applications/solvers/combustion/XiFoam/XiDyMFoam/readControls.H
index ed2db49fb4dcc9ffd3084f3beda346b118d1eaa4..08ab3a6af7a80a7054df2c437d903c44a0dd994f 100644
--- a/applications/solvers/combustion/XiFoam/XiDyMFoam/readControls.H
+++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/readControls.H
@@ -1,6 +1,6 @@
 #include "readTimeControls.H"
 
-correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
+correctPhi = pimple.dict().lookupOrDefault("correctPhi", true);
 
 checkMeshCourantNo =
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
diff --git a/applications/solvers/combustion/fireFoam/createFields.H b/applications/solvers/combustion/fireFoam/createFields.H
index 626e1652ef0f41f63d183b160d9a3cc92ab414c3..35781d27d56e7c9370ee1122a7e8ea1c17409966 100644
--- a/applications/solvers/combustion/fireFoam/createFields.H
+++ b/applications/solvers/combustion/fireFoam/createFields.H
@@ -121,14 +121,14 @@ IOdictionary additionalControlsDict
     )
 );
 
-Switch solvePrimaryRegion
+bool solvePrimaryRegion
 (
-    additionalControlsDict.lookup("solvePrimaryRegion")
+    additionalControlsDict.lookupOrDefault("solvePrimaryRegion", true)
 );
 
-Switch solvePyrolysisRegion
+bool solvePyrolysisRegion
 (
-    additionalControlsDict.lookupOrDefault<bool>("solvePyrolysisRegion", true)
+    additionalControlsDict.lookupOrDefault("solvePyrolysisRegion", true)
 );
 
 volScalarField Qdot
diff --git a/applications/solvers/combustion/fireFoam/phrghEqn.H b/applications/solvers/combustion/fireFoam/phrghEqn.H
index 3c5175f41f4f8142224e80e45e88ee31d9853415..5d844d61cc96b51bdd8468fff5f96c6357328ba4 100644
--- a/applications/solvers/combustion/fireFoam/phrghEqn.H
+++ b/applications/solvers/combustion/fireFoam/phrghEqn.H
@@ -1,4 +1,4 @@
-if (pimple.dict().lookupOrDefault<bool>("hydrostaticInitialization", false))
+if (pimple.dict().lookupOrDefault("hydrostaticInitialization", false))
 {
     volScalarField& ph_rgh = regIOobject::store
     (
diff --git a/applications/solvers/compressible/rhoPimpleAdiabaticFoam/EEqn.H b/applications/solvers/compressible/rhoPimpleAdiabaticFoam/EEqn.H
index 9dae89f003418a3dffdfdc8fcbf91f5f64c76b80..a3bd66654d41b6bf5589f978d5260d488b3a13ac 100644
--- a/applications/solvers/compressible/rhoPimpleAdiabaticFoam/EEqn.H
+++ b/applications/solvers/compressible/rhoPimpleAdiabaticFoam/EEqn.H
@@ -17,7 +17,7 @@
 
     const dictionary& eosDict = thermoDict.subDict("equationOfState");
 
-    bool local = eosDict.lookupOrDefault<bool>("local", false);
+    bool local = eosDict.lookupOrDefault("local", false);
 
     // Evolve T as:
     //
diff --git a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createControls.H b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createControls.H
index aed0e76956bb40c41b7cbf25aea54d7a77a03b67..4c888d9e3a1d5125783f8898dea8548e96a4a584 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createControls.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/createControls.H
@@ -2,10 +2,10 @@
 
 bool correctPhi
 (
-    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
+    pimple.dict().lookupOrDefault("correctPhi", true)
 );
 
 bool checkMeshCourantNo
 (
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
 );
diff --git a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/readControls.H b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/readControls.H
index ed2db49fb4dcc9ffd3084f3beda346b118d1eaa4..08ab3a6af7a80a7054df2c437d903c44a0dd994f 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/readControls.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/readControls.H
@@ -1,6 +1,6 @@
 #include "readTimeControls.H"
 
-correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
+correctPhi = pimple.dict().lookupOrDefault("correctPhi", true);
 
 checkMeshCourantNo =
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/createControls.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/createControls.H
index aed0e76956bb40c41b7cbf25aea54d7a77a03b67..4c888d9e3a1d5125783f8898dea8548e96a4a584 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/createControls.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/createControls.H
@@ -2,10 +2,10 @@
 
 bool correctPhi
 (
-    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
+    pimple.dict().lookupOrDefault("correctPhi", true)
 );
 
 bool checkMeshCourantNo
 (
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
 );
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/readControls.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/readControls.H
index ed2db49fb4dcc9ffd3084f3beda346b118d1eaa4..08ab3a6af7a80a7054df2c437d903c44a0dd994f 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/readControls.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/readControls.H
@@ -1,6 +1,6 @@
 #include "readTimeControls.H"
 
-correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
+correctPhi = pimple.dict().lookupOrDefault("correctPhi", true);
 
 checkMeshCourantNo =
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
index b6673dae1651f829f280a27692dd6888e3b1dca7..66c70f5e39291eb48568932dc17dfb9c4d0bcd1a 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
@@ -105,9 +105,9 @@ forAll(Y, i)
 }
 fields.add(thermo.he());
 
-Switch solvePrimaryRegion
+bool solvePrimaryRegion
 (
-    pimple.dict().lookupOrDefault<Switch>("solvePrimaryRegion", true)
+    pimple.dict().lookupOrDefault("solvePrimaryRegion", true)
 );
 
 volScalarField Qdot
diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/createControls.H b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/createControls.H
index fbda6ae1a10782bcc22d4c7a14672e093868ec2c..9f3fba812c12d91f21fb4171cc75793b1dec732c 100644
--- a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/createControls.H
+++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/createControls.H
@@ -1,11 +1,11 @@
 #include "createTimeControls.H"
 
-scalar maxAcousticCo
+bool correctPhi
 (
-    readScalar(runTime.controlDict().lookup("maxAcousticCo"))
+    pimple.dict().lookupOrDefault("correctPhi", true)
 );
 
-bool correctPhi
+scalar maxAcousticCo
 (
-    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
+    readScalar(runTime.controlDict().lookup("maxAcousticCo"))
 );
diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/readControls.H b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/readControls.H
index ad79c78c61375d7bed58c2eb1fd9be19099e4f25..ad5e574527e8b114d29353b3139453a7e7327558 100644
--- a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/readControls.H
+++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/readControls.H
@@ -1,4 +1,4 @@
 #include "readTimeControls.H"
 
+correctPhi = pimple.dict().lookupOrDefault("correctPhi", true);
 maxAcousticCo = readScalar(runTime.controlDict().lookup("maxAcousticCo"));
-correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H
index f1930cdfc08077e975d9c6e790fa098b3e5ddde7..1c2daf3427ce4d02b372272230bf53138ae18d97 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H
@@ -2,15 +2,15 @@
 
 bool correctPhi
 (
-    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
+    pimple.dict().lookupOrDefault("correctPhi", true)
 );
 
 bool checkMeshCourantNo
 (
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
 );
 
 bool moveMeshOuterCorrectors
 (
-    pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false)
+    pimple.dict().lookupOrDefault("moveMeshOuterCorrectors", false)
 );
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H
index d82dcecb8a582f508f201265bcc7af2405446d41..75e6cf690974386c0aa1b5d7261471efff65e9b3 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H
@@ -1,9 +1,9 @@
 #include "readTimeControls.H"
 
-correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
+correctPhi = pimple.dict().lookupOrDefault("correctPhi", true);
 
 checkMeshCourantNo =
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
 
 moveMeshOuterCorrectors =
-    pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false);
+    pimple.dict().lookupOrDefault("moveMeshOuterCorrectors", false);
diff --git a/applications/solvers/multiphase/driftFluxFoam/alphaControls.H b/applications/solvers/multiphase/driftFluxFoam/alphaControls.H
index 759e0c22b67a9cf89ec58126be7a8ce8d529f162..95154c6a154e5c5545dca0e2c79d9f7e881f870e 100644
--- a/applications/solvers/multiphase/driftFluxFoam/alphaControls.H
+++ b/applications/solvers/multiphase/driftFluxFoam/alphaControls.H
@@ -4,12 +4,12 @@ label nAlphaCorr(readLabel(alphaControls.lookup("nAlphaCorr")));
 
 label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
 
-bool MULESCorr(alphaControls.lookupOrDefault<Switch>("MULESCorr", false));
+bool MULESCorr(alphaControls.lookupOrDefault("MULESCorr", false));
 
 // Apply the compression correction from the previous iteration
 // Improves efficiency for steady-simulations but can only be applied
 // once the alpha field is reasonably steady, i.e. fully developed
 bool alphaApplyPrevCorr
 (
-    alphaControls.lookupOrDefault<Switch>("alphaApplyPrevCorr", false)
+    alphaControls.lookupOrDefault("alphaApplyPrevCorr", false)
 );
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/createDyMControls.H b/applications/solvers/multiphase/interFoam/interDyMFoam/createDyMControls.H
index 5055ac090a9353ca383e15d0f1bfcfac8a2c812a..f2322bb14314f3a1998479d0d49bbe3fd5c8cd7f 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/createDyMControls.H
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/createDyMControls.H
@@ -1,14 +1,14 @@
 bool correctPhi
 (
-    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
+    pimple.dict().lookupOrDefault("correctPhi", true)
 );
 
 bool checkMeshCourantNo
 (
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
 );
 
 bool moveMeshOuterCorrectors
 (
-    pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false)
+    pimple.dict().lookupOrDefault("moveMeshOuterCorrectors", false)
 );
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H b/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H
index d82dcecb8a582f508f201265bcc7af2405446d41..75e6cf690974386c0aa1b5d7261471efff65e9b3 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H
@@ -1,9 +1,9 @@
 #include "readTimeControls.H"
 
-correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
+correctPhi = pimple.dict().lookupOrDefault("correctPhi", true);
 
 checkMeshCourantNo =
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
 
 moveMeshOuterCorrectors =
-    pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false);
+    pimple.dict().lookupOrDefault("moveMeshOuterCorrectors", false);
diff --git a/applications/solvers/multiphase/interFoam/overInterDyMFoam/createDyMControls.H b/applications/solvers/multiphase/interFoam/overInterDyMFoam/createDyMControls.H
index 00673cec243ac65fae2c8bf04534d24ddf8df3b2..603ae1f545153deceda4b4aff8141db998fbec63 100644
--- a/applications/solvers/multiphase/interFoam/overInterDyMFoam/createDyMControls.H
+++ b/applications/solvers/multiphase/interFoam/overInterDyMFoam/createDyMControls.H
@@ -1,16 +1,16 @@
 bool correctPhi
 (
-    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
+    pimple.dict().lookupOrDefault("correctPhi", true)
 );
 
 bool checkMeshCourantNo
 (
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
 );
 
 bool moveMeshOuterCorrectors
 (
-    pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false)
+    pimple.dict().lookupOrDefault("moveMeshOuterCorrectors", false)
 );
 
 
diff --git a/applications/solvers/multiphase/interFoam/overInterDyMFoam/readControls.H b/applications/solvers/multiphase/interFoam/overInterDyMFoam/readControls.H
index a2acf920692b33ac049e3a166a3c7c6981e5bacf..0f9f7c67382fb11cb1d40305979b1ceaac8d2428 100644
--- a/applications/solvers/multiphase/interFoam/overInterDyMFoam/readControls.H
+++ b/applications/solvers/multiphase/interFoam/overInterDyMFoam/readControls.H
@@ -1,12 +1,12 @@
 #include "readTimeControls.H"
 
-correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", false);
+correctPhi = pimple.dict().lookupOrDefault("correctPhi", false);
 
 checkMeshCourantNo =
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
 
 moveMeshOuterCorrectors =
-    pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false);
+    pimple.dict().lookupOrDefault("moveMeshOuterCorrectors", false);
 
 massFluxInterpolation =
     pimple.dict().lookupOrDefault("massFluxInterpolation", false);
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/alphaControls.H b/applications/solvers/multiphase/interPhaseChangeFoam/alphaControls.H
index 2b42206226dd917da4ef6cf3a16eb5eab3fb45c9..bd26f0b927074e2e8e38e804105a66c00dd5fd45 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/alphaControls.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/alphaControls.H
@@ -4,14 +4,14 @@ label nAlphaCorr(readLabel(alphaControls.lookup("nAlphaCorr")));
 
 label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
 
-bool MULESCorr(alphaControls.lookupOrDefault<Switch>("MULESCorr", false));
+bool MULESCorr(alphaControls.lookupOrDefault("MULESCorr", false));
 
 // Apply the compression correction from the previous iteration
 // Improves efficiency for steady-simulations but can only be applied
 // once the alpha field is reasonably steady, i.e. fully developed
 //bool alphaApplyPrevCorr
 //(
-//    alphaControls.lookupOrDefault<Switch>("alphaApplyPrevCorr", false)
+//    alphaControls.lookupOrDefault("alphaApplyPrevCorr", false)
 //);
 
 // Isotropic compression coefficient
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/reactingMultiphaseEulerFoam.C b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/reactingMultiphaseEulerFoam.C
index 55b677386245c5ed9daec224cb0011cf58ca76f2..87b8449cb40e8019a5bb901452145a733ca897d3 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/reactingMultiphaseEulerFoam.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/reactingMultiphaseEulerFoam.C
@@ -62,14 +62,14 @@ int main(int argc, char *argv[])
         #include "setInitialDeltaT.H"
     }
 
-    // Switch faceMomentum
+    // bool faceMomentum
     // (
-    //     pimple.dict().lookupOrDefault<Switch>("faceMomentum", false)
+    //     pimple.dict().lookupOrDefault("faceMomentum", false)
     // );
 
-    // Switch implicitPhasePressure
+    // bool implicitPhasePressure
     // (
-    //     mesh.solverDict(alpha1.name()).lookupOrDefault<Switch>
+    //     mesh.solverDict(alpha1.name()).lookupOrDefault
     //     (
     //         "implicitPhasePressure", false
     //     )
diff --git a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
index 399a596944e8b646ff45ab0f8e61d2fa72ee81d4..edcd357e0e3d530ff9cd23c6adb7e80ecf9b27f3 100644
--- a/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
+++ b/applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
@@ -91,14 +91,14 @@ int main(int argc, char *argv[])
         #include "setInitialDeltaT.H"
     }
 
-    Switch faceMomentum
+    bool faceMomentum
     (
-        pimple.dict().lookupOrDefault<Switch>("faceMomentum", false)
+        pimple.dict().lookupOrDefault("faceMomentum", false)
     );
 
-    Switch implicitPhasePressure
+    bool implicitPhasePressure
     (
-        mesh.solverDict(alpha1.name()).lookupOrDefault<Switch>
+        mesh.solverDict(alpha1.name()).lookupOrDefault
         (
             "implicitPhasePressure", false
         )
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C
index 849c94fe23c4d1328a4fefc3f74d888bb6d99812..6f46e2b044606e3d7a4d9b1a2cd285ae458ac22a 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C
@@ -57,14 +57,14 @@ int main(int argc, char *argv[])
     #include "CourantNos.H"
     #include "setInitialDeltaT.H"
 
-    Switch faceMomentum
+    bool faceMomentum
     (
-        pimple.dict().lookupOrDefault<Switch>("faceMomentum", false)
+        pimple.dict().lookupOrDefault("faceMomentum", false)
     );
 
-    Switch implicitPhasePressure
+    bool implicitPhasePressure
     (
-        mesh.solverDict(alpha1.name()).lookupOrDefault<Switch>
+        mesh.solverDict(alpha1.name()).lookupOrDefault
         (
             "implicitPhasePressure", false
         )
diff --git a/applications/utilities/mesh/manipulation/moveDynamicMesh/moveDynamicMesh.C b/applications/utilities/mesh/manipulation/moveDynamicMesh/moveDynamicMesh.C
index eadf3831f96c06f32291e701a47a4e7954b0752a..d57e47a2e1a8fbdad8aa2cd4c4eba0b019f0e0a3 100644
--- a/applications/utilities/mesh/manipulation/moveDynamicMesh/moveDynamicMesh.C
+++ b/applications/utilities/mesh/manipulation/moveDynamicMesh/moveDynamicMesh.C
@@ -183,7 +183,7 @@ int main(int argc, char *argv[])
 
     bool moveMeshOuterCorrectors
     (
-        pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false)
+        pimple.dict().lookupOrDefault("moveMeshOuterCorrectors", false)
     );
 
     while (runTime.loop())
diff --git a/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C b/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C
index 40132f13446b62f92e2370dced8b16f47f95afcc..dae63600ab9bf8347d1ef4fba56b85aa56b3827e 100644
--- a/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C
+++ b/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C
@@ -282,10 +282,10 @@ int main(int argc, char *argv[])
     const word viewFactorWall("viewFactorWall");
 
     const bool writeViewFactors =
-        viewFactorDict.lookupOrDefault<bool>("writeViewFactorMatrix", false);
+        viewFactorDict.lookupOrDefault("writeViewFactorMatrix", false);
 
     const bool dumpRays =
-        viewFactorDict.lookupOrDefault<bool>("dumpRays", false);
+        viewFactorDict.lookupOrDefault("dumpRays", false);
 
     const label debug = viewFactorDict.lookupOrDefault<label>("debug", 0);
 
diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
index eb7103faf1eab2ab0ef3da0d9096d3829acb27af..6a4f0d546d20c5836f788f834c986a62d0b0e3ef 100644
--- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
+++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
@@ -463,7 +463,7 @@ int main(int argc, char *argv[])
             }
 
             // Suboption: "nonManifoldEdges" (false: remove non-manifold edges)
-            if (!subsetDict.lookupOrDefault<bool>("nonManifoldEdges", true))
+            if (!subsetDict.lookupOrDefault("nonManifoldEdges", true))
             {
                 Info<< "Removing all non-manifold edges"
                     << " (edges with > 2 connected faces) unless they"
@@ -478,7 +478,7 @@ int main(int argc, char *argv[])
             }
 
             // Suboption: "openEdges" (false: remove open edges)
-            if (!subsetDict.lookupOrDefault<bool>("openEdges", true))
+            if (!subsetDict.lookupOrDefault("openEdges", true))
             {
                 Info<< "Removing all open edges"
                     << " (edges with 1 connected face)" << endl;
@@ -650,7 +650,7 @@ int main(int argc, char *argv[])
         }
 
         // Option: "closeness"
-        if (surfaceDict.lookupOrDefault<bool>("closeness", false))
+        if (surfaceDict.lookupOrDefault("closeness", false))
         {
             Pair<tmp<scalarField>> tcloseness =
                 triSurfaceTools::writeCloseness
@@ -697,7 +697,7 @@ int main(int argc, char *argv[])
         }
 
         // Option: "curvature"
-        if (surfaceDict.lookupOrDefault<bool>("curvature", false))
+        if (surfaceDict.lookupOrDefault("curvature", false))
         {
             tmp<scalarField> tcurvatureField =
                 triSurfaceTools::writeCurvature
@@ -727,7 +727,7 @@ int main(int argc, char *argv[])
         }
 
         // Option: "featureProximity"
-        if (surfaceDict.lookupOrDefault<bool>("featureProximity", false))
+        if (surfaceDict.lookupOrDefault("featureProximity", false))
         {
             tmp<scalarField> tproximity =
                 edgeMeshTools::writeFeatureProximity
diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C
index ed2db5b3a3ca8d17f74a1bcced927a3f98937696..73cc24f0d0fc551e1dd8e2348fa9b9f87b96c8f2 100644
--- a/src/OpenFOAM/db/Time/Time.C
+++ b/src/OpenFOAM/db/Time/Time.C
@@ -269,7 +269,7 @@ void Foam::Time::setControls()
 
     // Read and set the deltaT only if time-step adjustment is active
     // otherwise use the deltaT from the controlDict
-    if (controlDict_.lookupOrDefault<Switch>("adjustTimeStep", false))
+    if (controlDict_.lookupOrDefault("adjustTimeStep", false))
     {
         if (timeDict.readIfPresent("deltaT", deltaT_))
         {
@@ -358,7 +358,7 @@ void Foam::Time::setMonitoring(const bool forceProfiling)
     else if
     (
         profilingDict
-     && profilingDict->lookupOrDefault<bool>("active", true)
+     && profilingDict->lookupOrDefault("active", true)
     )
     {
         profiling::initialize
diff --git a/src/OpenFOAM/global/profiling/profiling.C b/src/OpenFOAM/global/profiling/profiling.C
index c2861eea2758430005aef3c3e4036bc5bf7eb34b..4ec25d5ba88f337f58acd0c3a2cabf3c2d131eb0 100644
--- a/src/OpenFOAM/global/profiling/profiling.C
+++ b/src/OpenFOAM/global/profiling/profiling.C
@@ -270,17 +270,17 @@ Foam::profiling::profiling
     timers_(),
     sysInfo_
     (
-        dict.lookupOrDefault<bool>("sysInfo", false)
+        dict.lookupOrDefault("sysInfo", false)
       ? new profilingSysInfo() : nullptr
     ),
     cpuInfo_
     (
-        dict.lookupOrDefault<bool>("cpuInfo", false)
+        dict.lookupOrDefault("cpuInfo", false)
       ? new cpuInfo() : nullptr
     ),
     memInfo_
     (
-        dict.lookupOrDefault<bool>("memInfo", false)
+        dict.lookupOrDefault("memInfo", false)
       ? new memInfo() : nullptr
     )
 {}
diff --git a/src/OpenFOAM/primitives/bools/Switch/Switch.C b/src/OpenFOAM/primitives/bools/Switch/Switch.C
index e40b62f10b0632c294274c171e97e60923503472..098b7f79a54b4cf40b2348db509f07a413857b7e 100644
--- a/src/OpenFOAM/primitives/bools/Switch/Switch.C
+++ b/src/OpenFOAM/primitives/bools/Switch/Switch.C
@@ -30,7 +30,17 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-const char* Foam::Switch::names[9] =
+namespace
+{
+static_assert
+(
+    Foam::Switch::INVALID+1 == 9,
+    "Switch::switchType does not have 9 entries"
+);
+
+//- The names corresponding to the Switch::switchType enumeration.
+//  Includes extra entries for "invalid".
+static const char* names[9] =
 {
     "false", "true",
     "no",    "yes",
@@ -39,6 +49,7 @@ const char* Foam::Switch::names[9] =
     "invalid"
 };
 
+} // End anonymous namespace
 
 // * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * * //
 
diff --git a/src/OpenFOAM/primitives/bools/Switch/Switch.H b/src/OpenFOAM/primitives/bools/Switch/Switch.H
index f2ef0d543990adad154bed21178331a011f570f5..ab4da782aca176d65152398b33a22db9cc4402f7 100644
--- a/src/OpenFOAM/primitives/bools/Switch/Switch.H
+++ b/src/OpenFOAM/primitives/bools/Switch/Switch.H
@@ -92,15 +92,12 @@ private:
         //- The logic and enumerated text representation stored in a byte
         unsigned char switch_;
 
-        //- The set of names corresponding to the switchType enumeration.
-        //  Includes extra entries for "invalid".
-        static const char* names[9];
-
     // Static Member Functions
 
         //- Return enum value for input string
         static switchType parse(const std::string& str, bool allowBad);
 
+
 public:
 
     // Constructors
diff --git a/src/OpenFOAM/primitives/subModelBase/subModelBase.C b/src/OpenFOAM/primitives/subModelBase/subModelBase.C
index 9a220797deed1344acc63d4544cf6c68a7eb499c..99c81441e2b6ab89809b8f36e71ab6d90183f39c 100644
--- a/src/OpenFOAM/primitives/subModelBase/subModelBase.C
+++ b/src/OpenFOAM/primitives/subModelBase/subModelBase.C
@@ -139,7 +139,7 @@ const Foam::dictionary& Foam::subModelBase::properties() const
 
 bool Foam::subModelBase::defaultCoeffs(const bool printMsg) const
 {
-    bool def = coeffDict_.lookupOrDefault<bool>("defaultCoeffs", false);
+    bool def = coeffDict_.lookupOrDefault("defaultCoeffs", false);
     if (printMsg && def)
     {
         Info<< incrIndent;
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
index 1ebdbcf59d439c72d571ccbced3ac182fc309970..4ab6756803904bd38b6ef6849bf527a40fe9a945 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
@@ -95,7 +95,7 @@ thermalBaffle1DFvPatchScalarField
     mappedPatchBase(p.patch(), NEARESTPATCHFACE, dict),
     mixedFvPatchScalarField(p, iF),
     TName_("T"),
-    baffleActivated_(dict.lookupOrDefault<bool>("baffleActivated", true)),
+    baffleActivated_(dict.lookupOrDefault("baffleActivated", true)),
     thickness_(),
     qs_(p.size(), 0),
     solidDict_(dict),
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C
index 6c47590edc3600d54d5421bf9c962a6a78f1b0dd..9deff04b19b62cea6e042ea1e974ef74f816d808 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C
@@ -1225,7 +1225,7 @@ Foam::edgeCollapser::edgeCollapser
     ),
     allowEarlyCollapseToPoint_
     (
-        dict.lookupOrDefault<Switch>("allowEarlyCollapseToPoint", true)
+        dict.lookupOrDefault("allowEarlyCollapseToPoint", true)
     ),
     allowEarlyCollapseCoeff_
     (
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.H b/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.H
index 40c45943926724fb29ed6cc06325a9a9d6d3f027..e61784c0797b340eb4e42287a03bbfb3956fea61 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.H
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.H
@@ -93,7 +93,7 @@ private:
 
         //- Allow a face to be collapsed to a point early, before the test
         //  to collapse to an edge
-        const Switch allowEarlyCollapseToPoint_;
+        const bool allowEarlyCollapseToPoint_;
 
         //- Fraction of maxCollapseFaceToPointSideLengthCoeff_ to use when
         //  allowEarlyCollapseToPoint_ is on
diff --git a/src/finiteVolume/cfdTools/general/coupling/externalFileCoupler.C b/src/finiteVolume/cfdTools/general/coupling/externalFileCoupler.C
index 8bc524fdcc49224a3ec3edc1e955da0446216865..8f3579be540b9464a3aa8f2bbc08f570eb9b93c8 100644
--- a/src/finiteVolume/cfdTools/general/coupling/externalFileCoupler.C
+++ b/src/finiteVolume/cfdTools/general/coupling/externalFileCoupler.C
@@ -153,7 +153,7 @@ bool Foam::externalFileCoupler::readDict(const dictionary& dict)
         dict.lookup("commsDir") >> commsDir_;
         commsDir_.expand();
         commsDir_.clean();
-        slaveFirst_ = dict.lookupOrDefault<bool>("initByExternal", false);
+        slaveFirst_ = dict.lookupOrDefault("initByExternal", false);
 
         Info<< type() << ": initialize" << nl
             << "    directory: " << commsDir_ << nl
@@ -169,7 +169,7 @@ bool Foam::externalFileCoupler::readDict(const dictionary& dict)
 
     timeOut_ = dict.lookupOrDefault("timeOut", 100*waitInterval_);
 
-    log = dict.lookupOrDefault<bool>("log", false);
+    log = dict.lookupOrDefault("log", false);
 
     return true;
 }
diff --git a/src/finiteVolume/cfdTools/general/include/alphaControls.H b/src/finiteVolume/cfdTools/general/include/alphaControls.H
index 2f1b50a78553c3e75536e6fd8e97a60525157a14..796a59a3f1fcf6e49cd34ceec4ae41b1745c0372 100644
--- a/src/finiteVolume/cfdTools/general/include/alphaControls.H
+++ b/src/finiteVolume/cfdTools/general/include/alphaControls.H
@@ -4,14 +4,14 @@ label nAlphaCorr(readLabel(alphaControls.lookup("nAlphaCorr")));
 
 label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
 
-bool MULESCorr(alphaControls.lookupOrDefault<Switch>("MULESCorr", false));
+bool MULESCorr(alphaControls.lookupOrDefault("MULESCorr", false));
 
 // Apply the compression correction from the previous iteration
 // Improves efficiency for steady-simulations but can only be applied
 // once the alpha field is reasonably steady, i.e. fully developed
 bool alphaApplyPrevCorr
 (
-    alphaControls.lookupOrDefault<Switch>("alphaApplyPrevCorr", false)
+    alphaControls.lookupOrDefault("alphaApplyPrevCorr", false)
 );
 
 // Isotropic compression coefficient
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.C
index daa8bd52c5ec6b4c83d474fda45d708f5f0bc63c..9cd231a9c2323b3a436ef38ddef71e3803cfe5f2 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.C
@@ -67,8 +67,8 @@ Foam::fanFvPatchField<Type>::fanFvPatchField
     uniformJumpFvPatchField<Type>(p, iF, dict),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
-    uniformJump_(dict.lookupOrDefault<bool>("uniformJump", false)),
-    nonDimensional_(dict.lookupOrDefault<Switch>("nonDimensional", false)),
+    uniformJump_(dict.lookupOrDefault("uniformJump", false)),
+    nonDimensional_(dict.lookupOrDefault("nonDimensional", false)),
     rpm_(dict.lookupOrDefault<scalar>("rpm", 0.0)),
     dm_(dict.lookupOrDefault<scalar>("dm", 0.0))
 {
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H
index ed95c018b3a564e2bae60588cfc3fc7e8da3d746..de5f8f197a39c4cdd02f1f07d48bbedb8f3ac64b 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H
@@ -136,15 +136,15 @@ class fanFvPatchField
         bool uniformJump_;
 
         //- Swtich for using non-dimensional curve
-        Switch nonDimensional_;
+        bool nonDimensional_;
 
         // Parameters for non-dimensional table
 
-            //- Fan rpm
-            scalar rpm_;
+        //- Fan rpm
+        scalar rpm_;
 
-            //- Fan mean diameter
-            scalar dm_;
+        //- Fan mean diameter
+        scalar dm_;
 
 
     // Private Member Functions
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
index 7e7e78f35514a198f8608202c0ef62d90f240d25..832ee9e632a575523f3ec4f0e8b652a339999773 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
@@ -96,8 +96,8 @@ Foam::fanFvPatchField<Foam::scalar>::fanFvPatchField
     uniformJumpFvPatchField<scalar>(p, iF),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
-    uniformJump_(dict.lookupOrDefault<bool>("uniformJump", false)),
-    nonDimensional_(dict.lookupOrDefault<Switch>("nonDimensional", false)),
+    uniformJump_(dict.lookupOrDefault("uniformJump", false)),
+    nonDimensional_(dict.lookupOrDefault("nonDimensional", false)),
     rpm_(dict.lookupOrDefault<scalar>("rpm", 0.0)),
     dm_(dict.lookupOrDefault<scalar>("dm", 0.0))
 {
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/flowRateOutletVelocity/flowRateOutletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/flowRateOutletVelocity/flowRateOutletVelocityFvPatchVectorField.C
index 88e9c9848c1511369f9acb778366ffff58f2a5e0..dd9d58ae957f34a92f5fde51e52576d89b86aa61 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/flowRateOutletVelocity/flowRateOutletVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/flowRateOutletVelocity/flowRateOutletVelocityFvPatchVectorField.C
@@ -66,7 +66,7 @@ flowRateOutletVelocityFvPatchVectorField
     {
         volumetric_ = false;
         flowRate_ = Function1<scalar>::New("massFlowRate", dict);
-        rhoName_ = word(dict.lookupOrDefault<word>("rho", "rho"));
+        rhoName_ = dict.lookupOrDefault<word>("rho", "rho");
     }
     else
     {
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/matchedFlowRateOutletVelocity/matchedFlowRateOutletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/matchedFlowRateOutletVelocity/matchedFlowRateOutletVelocityFvPatchVectorField.C
index 30987e05dbbae32a5bd1cf229809b1abd5d2f3ff..e8f0ea477664f8d725658b72c6ff0561f9f7d9e7 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/matchedFlowRateOutletVelocity/matchedFlowRateOutletVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/matchedFlowRateOutletVelocity/matchedFlowRateOutletVelocityFvPatchVectorField.C
@@ -62,7 +62,7 @@ matchedFlowRateOutletVelocityFvPatchVectorField
     }
     else
     {
-        rhoName_ = word(dict.lookupOrDefault<word>("rho", "rho"));
+        rhoName_ = dict.lookupOrDefault<word>("rho", "rho");
     }
 
     // Value field require if mass based
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.C
index 3d4169e0e47b12c36971b7e12aa08a48bfe768ee..970a94d4475eac379ff4b039bf680986d448fb55 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.C
@@ -153,7 +153,7 @@ Foam::swirlFanVelocityFvPatchField::swirlFanVelocityFvPatchField
     rpm_(dict.lookupOrDefault<scalar>("rpm", 0.0)),
     rEff_(dict.lookupOrDefault<scalar>("rEff", 0.0)),
     fanEff_(dict.lookupOrDefault<scalar>("fanEff", 1.0)),
-    useRealRadius_(dict.lookupOrDefault<Switch>("useRealRadius", false)),
+    useRealRadius_(dict.lookupOrDefault("useRealRadius", false)),
     rInner_(dict.lookupOrDefault<scalar>("rInner", 0.0)),
     rOuter_(dict.lookupOrDefault<scalar>("rOuter", 0.0))
 {}
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.H
index e723a7663afcf171310bdf6e26a6dcde0d166f04..8d485ebf38b9035c13fbfc44c386085d807fa3ba 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/swirlFanVelocity/swirlFanVelocityFvPatchField.H
@@ -140,13 +140,13 @@ class swirlFanVelocityFvPatchField
         scalar fanEff_;
 
         //- Switch to use effective radius or inner and outer radius
-        Switch useRealRadius_;
+        bool useRealRadius_;
 
-            //- Inner radius
-            scalar rInner_;
+        //- Inner radius
+        scalar rInner_;
 
-            //- Outer radius
-            scalar rOuter_;
+        //- Outer radius
+        scalar rOuter_;
 
 
     // Private Member Functions
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C
index 7470b9856ed42fdf7e4c195aeb94c4d74ee57240..d51189ec57c654dbc154a494d2b9bfb39eb6ec4b 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C
@@ -856,7 +856,7 @@ turbulentDFSEMInletFvPatchVectorField
     curTimeIndex_(-1),
     patchBounds_(boundBox::invertedBox),
     singleProc_(false),
-    writeEddies_(dict.lookupOrDefault<bool>("writeEddies", false))
+    writeEddies_(dict.lookupOrDefault("writeEddies", false))
 {
     eddy::debug = debug;
 
diff --git a/src/finiteVolume/fvMatrices/solvers/isoAdvection/isoAdvection/isoAdvection.C b/src/finiteVolume/fvMatrices/solvers/isoAdvection/isoAdvection/isoAdvection.C
index f6adea122e565004b826caa0dd49e6a12688edc3..57c19372a98e6d28fb4d5eaed82bed0e64bf4d80 100644
--- a/src/finiteVolume/fvMatrices/solvers/isoAdvection/isoAdvection/isoAdvection.C
+++ b/src/finiteVolume/fvMatrices/solvers/isoAdvection/isoAdvection/isoAdvection.C
@@ -82,14 +82,8 @@ Foam::isoAdvection::isoAdvection
     nAlphaBounds_(dict_.lookupOrDefault<label>("nAlphaBounds", 3)),
     isoFaceTol_(dict_.lookupOrDefault<scalar>("isoFaceTol", 1e-8)),
     surfCellTol_(dict_.lookupOrDefault<scalar>("surfCellTol", 1e-8)),
-    gradAlphaBasedNormal_
-    (
-        dict_.lookupOrDefault<bool>("gradAlphaNormal", false)
-    ),
-    writeIsoFacesToFile_
-    (
-        dict_.lookupOrDefault<bool>("writeIsoFaces", false)
-    ),
+    gradAlphaBasedNormal_(dict_.lookupOrDefault("gradAlphaNormal", false)),
+    writeIsoFacesToFile_(dict_.lookupOrDefault("writeIsoFaces", false)),
 
     // Cell cutting data
     surfCells_(label(0.2*mesh_.nCells())),
@@ -1021,8 +1015,7 @@ void Foam::isoAdvection::applyBruteForceBounding()
         alpha1Changed = true;
     }
 
-    bool clip = dict_.lookupOrDefault<bool>("clip", true);
-    if (clip)
+    if (dict_.lookupOrDefault("clip", true))
     {
         alpha1_ = min(scalar(1.0), max(scalar(0.0), alpha1_));
         alpha1Changed = true;
@@ -1037,7 +1030,7 @@ void Foam::isoAdvection::applyBruteForceBounding()
 
 void Foam::isoAdvection::writeSurfaceCells() const
 {
-    if (dict_.lookupOrDefault<bool>("writeSurfCells", false))
+    if (dict_.lookupOrDefault("writeSurfCells", false))
     {
         cellSet cSet
         (
@@ -1059,7 +1052,7 @@ void Foam::isoAdvection::writeSurfaceCells() const
 
 void Foam::isoAdvection::writeBoundedCells() const
 {
-    if (dict_.lookupOrDefault<bool>("writeBoundedCells", false))
+    if (dict_.lookupOrDefault("writeBoundedCells", false))
     {
         cellSet cSet
         (
diff --git a/src/finiteVolume/fvMesh/wallDist/patchDistMethods/meshWave/meshWavePatchDistMethod.C b/src/finiteVolume/fvMesh/wallDist/patchDistMethods/meshWave/meshWavePatchDistMethod.C
index 75c501beeecd066ec2ed7e5d22ed76d8ebf5f54f..090cd0e2344d492ca74fed7bb01cd04a5d4cfce8 100644
--- a/src/finiteVolume/fvMesh/wallDist/patchDistMethods/meshWave/meshWavePatchDistMethod.C
+++ b/src/finiteVolume/fvMesh/wallDist/patchDistMethods/meshWave/meshWavePatchDistMethod.C
@@ -53,7 +53,7 @@ Foam::patchDistMethods::meshWave::meshWave
 )
 :
     patchDistMethod(mesh, patchIDs),
-    correctWalls_(dict.lookupOrDefault<Switch>("correctWalls", true)),
+    correctWalls_(dict.lookupOrDefault("correctWalls", true)),
     nUnset_(0)
 {}
 
diff --git a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
index 498daf163758f5705b633ce54c1f0a48bbd93be8..4a77fb85793ff8f93f53f028b7d4541cad89cb39 100644
--- a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
+++ b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
@@ -106,7 +106,7 @@ Foam::wallDist::wallDist
         dimensionedScalar("y" & patchTypeName_, dimLength, SMALL),
         patchDistMethod::patchTypes<scalar>(mesh, patchIDs_)
     ),
-    nRequired_(dict_.lookupOrDefault<Switch>("nRequired", false)),
+    nRequired_(dict_.lookupOrDefault("nRequired", false)),
     n_(volVectorField::null()),
     updateInterval_(dict_.lookupOrDefault<label>("updateInterval", 1)),
     requireUpdate_(true)
@@ -160,7 +160,7 @@ Foam::wallDist::wallDist
         dimensionedScalar("y" & patchTypeName_, dimLength, SMALL),
         patchDistMethod::patchTypes<scalar>(mesh, patchIDs_)
     ),
-    nRequired_(dict_.lookupOrDefault<Switch>("nRequired", false)),
+    nRequired_(dict_.lookupOrDefault("nRequired", false)),
     n_(volVectorField::null()),
     updateInterval_(dict_.lookupOrDefault<label>("updateInterval", 1)),
     requireUpdate_(true)
diff --git a/src/functionObjects/field/fieldMinMax/fieldMinMax.C b/src/functionObjects/field/fieldMinMax/fieldMinMax.C
index 5d3e3f0bfdb8edd4b704a9c685f0bc7c4522543e..59b9f814db373a5585f2f26e8a382f39e28df53f 100644
--- a/src/functionObjects/field/fieldMinMax/fieldMinMax.C
+++ b/src/functionObjects/field/fieldMinMax/fieldMinMax.C
@@ -136,7 +136,7 @@ bool Foam::functionObjects::fieldMinMax::read(const dictionary& dict)
     fvMeshFunctionObject::read(dict);
     writeFile::read(dict);
 
-    location_ = dict.lookupOrDefault<Switch>("location", true);
+    location_ = dict.lookupOrDefault("location", true);
 
     mode_ = modeTypeNames_.lookupOrDefault("mode", dict, modeType::mdMag);
 
diff --git a/src/functionObjects/field/fieldMinMax/fieldMinMax.H b/src/functionObjects/field/fieldMinMax/fieldMinMax.H
index 9f7cd954a899f91f5e3cec466aa5c780f047c4f8..f92c1972c1dcda219f490f90930f35c6bacba63a 100644
--- a/src/functionObjects/field/fieldMinMax/fieldMinMax.H
+++ b/src/functionObjects/field/fieldMinMax/fieldMinMax.H
@@ -118,8 +118,8 @@ protected:
         //- Mode type names
         static const Enum<modeType> modeTypeNames_;
 
-        //- Switch to write location of min/max values
-        Switch location_;
+        //- Write location of min/max values?
+        bool location_;
 
         //- Mode for min/max - only applicable for ranks > 0
         modeType mode_;
diff --git a/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C b/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
index bf8a4a385605ae87ee29721fd602d984be6d6937..5536b7b56f031789b72be194d265134b64f82642 100644
--- a/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
+++ b/src/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
@@ -319,7 +319,7 @@ Foam::functionObjects::regionSizeDistribution::regionSizeDistribution
     writeFile(obr_, name),
     alphaName_(dict.lookup("field")),
     patchNames_(dict.lookup("patches")),
-    isoPlanes_(dict.lookupOrDefault<bool>("isoPlanes", false))
+    isoPlanes_(dict.lookupOrDefault("isoPlanes", false))
 {
     read(dict);
 }
diff --git a/src/functionObjects/graphics/runTimePostProcessing/functionObjectBase.C b/src/functionObjects/graphics/runTimePostProcessing/functionObjectBase.C
index e2c1ebee874e0b36364aa78899f37820efabc13e..df8fb3383a14a6fe7f1e782fd714951457487513 100644
--- a/src/functionObjects/graphics/runTimePostProcessing/functionObjectBase.C
+++ b/src/functionObjects/graphics/runTimePostProcessing/functionObjectBase.C
@@ -89,7 +89,7 @@ Foam::functionObjects::runTimePostPro::functionObjectBase::functionObjectBase
     fieldVisualisationBase(dict, colours),
     state_(state),
     functionObjectName_(""),
-    clearObjects_(dict.lookupOrDefault<bool>("clearObjects", false))
+    clearObjects_(dict.lookupOrDefault("clearObjects", false))
 {
     dict.lookup("functionObject") >> functionObjectName_;
 }
diff --git a/src/functionObjects/graphics/runTimePostProcessing/text.C b/src/functionObjects/graphics/runTimePostProcessing/text.C
index f83d31118f94d82cb63159a0dc047a933d86df6b..8a9f79c8527d0933319f769a11d78cf8e2ced09c 100644
--- a/src/functionObjects/graphics/runTimePostProcessing/text.C
+++ b/src/functionObjects/graphics/runTimePostProcessing/text.C
@@ -49,7 +49,7 @@ Foam::functionObjects::runTimePostPro::text::text
     size_(readScalar(dict.lookup("size"))),
     colour_(nullptr),
     bold_(readBool(dict.lookup("bold"))),
-    timeStamp_(dict.lookupOrDefault<bool>("timeStamp", false))
+    timeStamp_(dict.lookupOrDefault("timeStamp", false))
 {
     if (dict.found("colour"))
     {
diff --git a/src/functionObjects/solvers/scalarTransport/scalarTransport.C b/src/functionObjects/solvers/scalarTransport/scalarTransport.C
index 878b5b6f09a75ca07b687e802aaf2eb959dbe27b..707bf2a134b9a80a5a83f78cbd961e7a0e44b9c6 100644
--- a/src/functionObjects/solvers/scalarTransport/scalarTransport.C
+++ b/src/functionObjects/solvers/scalarTransport/scalarTransport.C
@@ -209,7 +209,7 @@ Foam::functionObjects::scalarTransport::scalarTransport
     resetOnStartUp_(false),
     schemesField_("unknown-schemesField"),
     fvOptions_(mesh_),
-    bounded01_(dict.lookupOrDefault<Switch>("bounded01", true))
+    bounded01_(dict.lookupOrDefault("bounded01", true))
 {
     read(dict);
 
diff --git a/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.C b/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.C
index d151422438a65aa4eb19d13d32f0ec887f67811c..1214378d0d47324516003bc9d8588f98e5ef9503 100644
--- a/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.C
+++ b/src/functionObjects/utilities/runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.C
@@ -82,7 +82,7 @@ Foam::functionObjects::runTimeControls::runTimeCondition::runTimeCondition
     name_(name),
     obr_(obr),
     state_(state),
-    active_(dict.lookupOrDefault<bool>("active", true)),
+    active_(dict.lookupOrDefault("active", true)),
     conditionDict_(setConditionDict()),
     log_(dict.lookupOrDefault("log", true)),
     groupID_(dict.lookupOrDefault("groupID", -1))
diff --git a/src/functionObjects/utilities/vtkWrite/vtkWrite.C b/src/functionObjects/utilities/vtkWrite/vtkWrite.C
index f30b70b33e782e28240b012fe25543be799f7655..efc490d4c9cc73cf05f2bceb97d8329e952a636e 100644
--- a/src/functionObjects/utilities/vtkWrite/vtkWrite.C
+++ b/src/functionObjects/utilities/vtkWrite/vtkWrite.C
@@ -70,7 +70,7 @@ bool Foam::functionObjects::vtkWrite::read(const dictionary& dict)
     // writer options - default is xml base64
     //
     writeOpts_ = vtk::formatType::INLINE_BASE64;
-    if (dict.lookupOrDefault<bool>("legacy", false))
+    if (dict.lookupOrDefault("legacy", false))
     {
         writeOpts_.legacy(true);
     }
@@ -99,7 +99,7 @@ bool Foam::functionObjects::vtkWrite::read(const dictionary& dict)
     //
     dict.readIfPresent("directory", dirName_);
 
-    writeIds_ = dict.lookupOrDefault<bool>("writeIds", false);
+    writeIds_ = dict.lookupOrDefault("writeIds", false);
 
 
     //
diff --git a/src/fvOptions/interRegionOption/interRegionOption.C b/src/fvOptions/interRegionOption/interRegionOption.C
index e25aa741c941fb896e9e4d197d600485e56c197c..32a3f88564cd6f5de3c481231a123569dd51bdd6 100644
--- a/src/fvOptions/interRegionOption/interRegionOption.C
+++ b/src/fvOptions/interRegionOption/interRegionOption.C
@@ -102,7 +102,7 @@ Foam::fv::interRegionOption::interRegionOption
         dict,
         mesh
     ),
-    master_(coeffs_.lookupOrDefault<bool>("master", true)),
+    master_(coeffs_.lookupOrDefault("master", true)),
     nbrRegionName_(coeffs_.lookup("nbrRegion")),
     meshInterpPtr_()
 {
diff --git a/src/fvOptions/sources/derived/rotorDiskSource/trimModel/targetCoeff/targetCoeffTrim.C b/src/fvOptions/sources/derived/rotorDiskSource/trimModel/targetCoeff/targetCoeffTrim.C
index 683e356b238998310d0fb63758608a52f9d74084..905c7a391e8be2b87ba6d72a2a230530b0a501c4 100644
--- a/src/fvOptions/sources/derived/rotorDiskSource/trimModel/targetCoeff/targetCoeffTrim.C
+++ b/src/fvOptions/sources/derived/rotorDiskSource/trimModel/targetCoeff/targetCoeffTrim.C
@@ -224,7 +224,7 @@ void Foam::targetCoeffTrim::read(const dictionary& dict)
     trimModel::read(dict);
 
     const dictionary& targetDict(coeffs_.subDict("target"));
-    useCoeffs_ = targetDict.lookupOrDefault<bool>("useCoeffs", true);
+    useCoeffs_ = targetDict.lookupOrDefault("useCoeffs", true);
     word ext = "";
     if (useCoeffs_)
     {
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudToVTK/CloudToVTK.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudToVTK/CloudToVTK.C
index 3c0f9a93cfa5c38e137e06871d84f9b0299fd3e7..eab3b274f4dd42fe506c578c43d523e9df973eed 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudToVTK/CloudToVTK.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudToVTK/CloudToVTK.C
@@ -140,7 +140,7 @@ Foam::CloudToVTK<CloudType>::CloudToVTK
 )
 :
     CloudFunctionObject<CloudType>(dict, owner, modelName, typeName),
-    binary_(dict.lookupOrDefault<bool>("binary", true))
+    binary_(dict.lookupOrDefault("binary", true))
 {}
 
 
diff --git a/src/mesh/blockMesh/blockMesh/blockMesh.C b/src/mesh/blockMesh/blockMesh/blockMesh.C
index 10bb74f76521af7530500a299142a2153d4267e1..a4d6d8c38e7699f8c9942fc3a169026f51b724a2 100644
--- a/src/mesh/blockMesh/blockMesh/blockMesh.C
+++ b/src/mesh/blockMesh/blockMesh/blockMesh.C
@@ -39,15 +39,15 @@ namespace Foam
 Foam::blockMesh::blockMesh(const IOdictionary& dict, const word& regionName)
 :
     meshDict_(dict),
-    verboseOutput(meshDict_.lookupOrDefault<Switch>("verbose", true)),
+    verboseOutput(meshDict_.lookupOrDefault("verbose", true)),
     geometry_
     (
         IOobject
         (
             "geometry",                 // dummy name
-            meshDict_.time().constant(),     // instance
+            meshDict_.time().constant(), // instance
             "geometry",                 // local
-            meshDict_.time(),                // registry
+            meshDict_.time(),           // registry
             IOobject::MUST_READ,
             IOobject::NO_WRITE
         ),
@@ -65,9 +65,7 @@ Foam::blockMesh::blockMesh(const IOdictionary& dict, const word& regionName)
     vertices_(Foam::vertices(blockVertices_)),
     topologyPtr_(createTopology(meshDict_, regionName))
 {
-    Switch fastMerge(meshDict_.lookupOrDefault<Switch>("fastMerge", false));
-
-    if (fastMerge)
+    if (meshDict_.lookupOrDefault("fastMerge", false))
     {
         calcMergeInfoFast();
     }
diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/refinementParameters/refinementParameters.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/refinementParameters/refinementParameters.C
index d714253c9dfe79947d8a9e3852601e0c7a7fda2a..c4a7ed6c1328faad6830dfb75f3a0e48282f6d33 100644
--- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/refinementParameters/refinementParameters.C
+++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/refinementParameters/refinementParameters.C
@@ -58,7 +58,7 @@ Foam::refinementParameters::refinementParameters(const dictionary& dict)
     allowFreeStandingZoneFaces_(dict.lookup("allowFreeStandingZoneFaces")),
     useTopologicalSnapDetection_
     (
-        dict.lookupOrDefault<bool>("useTopologicalSnapDetection", true)
+        dict.lookupOrDefault("useTopologicalSnapDetection", true)
     ),
     maxLoadUnbalance_(dict.lookupOrDefault<scalar>("maxLoadUnbalance", 0)),
     handleSnapProblems_
diff --git a/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C b/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C
index 76a80cfefc6f2e31990aab8c595df551f95b2e37..d754b90bdf3c2203140c726ef8723b5b98f84190 100644
--- a/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C
+++ b/src/meshTools/AMIInterpolation/patches/cyclicAMI/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C
@@ -538,7 +538,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
             )
         )
     ),
-    AMIReverse_(dict.lookupOrDefault<bool>("flipNormals", false)),
+    AMIReverse_(dict.lookupOrDefault("flipNormals", false)),
     AMIRequireMatch_(true),
     AMILowWeightCorrection_(dict.lookupOrDefault("lowWeightCorrection", -1.0)),
     surfPtr_(nullptr),
diff --git a/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBase.C b/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBase.C
index c9a62c73cce5646efd709ebf50fc2a66f0b75f9b..a34d1494d2c286e50ad050ac1411d0987b529320 100644
--- a/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBase.C
+++ b/src/meshTools/mappedPatches/mappedPolyPatch/mappedPatchBase.C
@@ -1037,7 +1037,7 @@ Foam::mappedPatchBase::mappedPatchBase
     sameRegion_(sampleRegion_ == patch_.boundaryMesh().mesh().name()),
     mapPtr_(nullptr),
     AMIPtr_(nullptr),
-    AMIReverse_(dict.lookupOrDefault<bool>("flipNormals", false)),
+    AMIReverse_(dict.lookupOrDefault("flipNormals", false)),
     surfPtr_(nullptr),
     surfDict_(dict.subOrEmptyDict("surface"))
 {
@@ -1119,7 +1119,7 @@ Foam::mappedPatchBase::mappedPatchBase
     sameRegion_(sampleRegion_ == patch_.boundaryMesh().mesh().name()),
     mapPtr_(nullptr),
     AMIPtr_(nullptr),
-    AMIReverse_(dict.lookupOrDefault<bool>("flipNormals", false)),
+    AMIReverse_(dict.lookupOrDefault("flipNormals", false)),
     surfPtr_(nullptr),
     surfDict_(dict.subOrEmptyDict("surface"))
 {
diff --git a/src/meshTools/regionCoupled/patches/regionCoupledPolyPatch/regionCoupledBase.C b/src/meshTools/regionCoupled/patches/regionCoupledPolyPatch/regionCoupledBase.C
index 68260786e063e9b77b44506cdaece1167f7de29c..bd64b8238df3087b35c7e6daf7e0ee918d34e25c 100644
--- a/src/meshTools/regionCoupled/patches/regionCoupledPolyPatch/regionCoupledBase.C
+++ b/src/meshTools/regionCoupled/patches/regionCoupledPolyPatch/regionCoupledBase.C
@@ -151,7 +151,7 @@ Foam::regionCoupledBase::regionCoupledBase
     nbrRegionName_(dict.lookup("neighbourRegion")),
     sameRegion_(nbrRegionName_ == patch_.boundaryMesh().mesh().name()),
     AMIPtr_(nullptr),
-    AMIReverse_(dict.lookupOrDefault<bool>("flipNormals", false)),
+    AMIReverse_(dict.lookupOrDefault("flipNormals", false)),
     surfPtr_(nullptr),
     surfDict_(dict.subOrEmptyDict("surface"))
 {}
diff --git a/src/meshTools/sets/cellSources/surfaceToCell/surfaceToCell.C b/src/meshTools/sets/cellSources/surfaceToCell/surfaceToCell.C
index 45af7eb24887d69770cccae87dd3ce71ea0bcbe5..6fcdee1b1ea12ef66793fe6724fe261337efc236 100644
--- a/src/meshTools/sets/cellSources/surfaceToCell/surfaceToCell.C
+++ b/src/meshTools/sets/cellSources/surfaceToCell/surfaceToCell.C
@@ -431,7 +431,7 @@ Foam::surfaceToCell::surfaceToCell
     includeOutside_(readBool(dict.lookup("includeOutside"))),
     useSurfaceOrientation_
     (
-        dict.lookupOrDefault<bool>("useSurfaceOrientation", false)
+        dict.lookupOrDefault("useSurfaceOrientation", false)
     ),
     nearDist_(readScalar(dict.lookup("nearDistance"))),
     curvature_(readScalar(dict.lookup("curvature"))),
diff --git a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
index e74fc89d3234f1898165c1c4ac031b0108bc2f54..38185bc6aabcf7dd06a493e95c6949c0126252be 100644
--- a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
+++ b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C
@@ -55,10 +55,10 @@ void reactingOneDim::readReactingOneDimControls()
     solution.lookup("nNonOrthCorr") >> nNonOrthCorr_;
     time().controlDict().lookup("maxDi") >> maxDiff_;
     coeffs().lookup("minimumDelta") >> minimumDelta_;
-    gasHSource_ = coeffs().lookupOrDefault<bool>("gasHSource", false);
+    gasHSource_ = coeffs().lookupOrDefault("gasHSource", false);
     coeffs().lookup("qrHSource") >> qrHSource_;
     useChemistrySolvers_ =
-        coeffs().lookupOrDefault<bool>("useChemistrySolvers", true);
+        coeffs().lookupOrDefault("useChemistrySolvers", true);
 }
 
 
diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C
index e1b79ac0e3d5586b3ecc8af7176baab7dd44a73e..c10d3d4cb3c0486a11d84cc0781e8cd753b1b940 100644
--- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C
+++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C
@@ -50,9 +50,9 @@ BrunDrippingInjection::BrunDrippingInjection
 )
 :
     injectionModel(type(), film, dict),
-    ubarStar_(coeffDict_.lookupOrDefault("ubarStar", 1.62208)),
-    dCoeff_(coeffDict_.lookupOrDefault("dCoeff", 3.3)),
-    deltaStable_(coeffDict_.lookupOrDefault("deltaStable", scalar(0))),
+    ubarStar_(coeffDict_.lookupOrDefault<scalar>("ubarStar", 1.62208)),
+    dCoeff_(coeffDict_.lookupOrDefault<scalar>("dCoeff", 3.3)),
+    deltaStable_(coeffDict_.lookupOrDefault<scalar>("deltaStable", 0)),
     diameter_(film.regionMesh().nCells(), -1.0)
 {}
 
diff --git a/src/regionModels/thermalBaffleModels/thermalBaffleModel/thermalBaffleModel.C b/src/regionModels/thermalBaffleModels/thermalBaffleModel/thermalBaffleModel.C
index 39f3e48e0cbead6f24b3880e5fef31df4e2e1486..0551b52e42299109f141aeff3b94684038c9d579 100644
--- a/src/regionModels/thermalBaffleModels/thermalBaffleModel/thermalBaffleModel.C
+++ b/src/regionModels/thermalBaffleModels/thermalBaffleModel/thermalBaffleModel.C
@@ -201,7 +201,7 @@ thermalBaffleModel::thermalBaffleModel
     thickness_(),
     delta_("delta", dimLength, 0.0),
     oneD_(false),
-    constantThickness_(dict.lookupOrDefault<bool>("constantThickness", true))
+    constantThickness_(dict.lookupOrDefault("constantThickness", true))
 {
     init();
 }
@@ -217,7 +217,7 @@ thermalBaffleModel::thermalBaffleModel
     thickness_(),
     delta_("delta", dimLength, 0.0),
     oneD_(false),
-    constantThickness_(lookupOrDefault<bool>("constantThickness", true))
+    constantThickness_(lookupOrDefault("constantThickness", true))
 {
     init();
 }
diff --git a/src/renumber/SloanRenumber/SloanRenumber.C b/src/renumber/SloanRenumber/SloanRenumber.C
index 7de9bd9bb5e9becc012e56835e1d0539109f77c5..c967dd7956a4e995ae8fdef20cc79940c213273e 100644
--- a/src/renumber/SloanRenumber/SloanRenumber.C
+++ b/src/renumber/SloanRenumber/SloanRenumber.C
@@ -95,7 +95,7 @@ Foam::SloanRenumber::SloanRenumber(const dictionary& renumberDict)
         renumberDict.optionalSubDict
         (
             typeName + "Coeffs"
-        ).lookupOrDefault<Switch>("reverse", false)
+        ).lookupOrDefault("reverse", false)
     )
 {}
 
diff --git a/src/renumber/SloanRenumber/SloanRenumber.H b/src/renumber/SloanRenumber/SloanRenumber.H
index 6e1bf0159dde620ebaaaa1fd629f24bd3275f91d..528319b8fedebf4acfcf056cdd2a1551094f46dd 100644
--- a/src/renumber/SloanRenumber/SloanRenumber.H
+++ b/src/renumber/SloanRenumber/SloanRenumber.H
@@ -44,7 +44,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                   Class SloanRenumber Declaration
+                        Class SloanRenumber Declaration
 \*---------------------------------------------------------------------------*/
 
 class SloanRenumber
@@ -53,7 +53,7 @@ class SloanRenumber
 {
     // Private data
 
-        const Switch reverse_;
+        const bool reverse_;
 
 
     // Private Member Functions
@@ -76,8 +76,7 @@ public:
 
 
     //- Destructor
-    virtual ~SloanRenumber()
-    {}
+    virtual ~SloanRenumber() = default;
 
 
     // Member Functions
diff --git a/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.C b/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.C
index 1d375d69edaebdcbd4d60e4a566000baad816607..3902180fb16374df4e962d4ef7a2f55ae5c3c0b6 100644
--- a/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.C
+++ b/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.C
@@ -53,7 +53,7 @@ Foam::CuthillMcKeeRenumber::CuthillMcKeeRenumber(const dictionary& renumberDict)
         renumberDict.optionalSubDict
         (
             typeName + "Coeffs"
-        ).lookupOrDefault<Switch>("reverse", false)
+        ).lookupOrDefault("reverse", false)
     )
 {}
 
diff --git a/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.H b/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.H
index c2dc057d98a9e193de7a7e8fa84978d182916281..a48e393365287b221a4df70caa7406ccf91adf76 100644
--- a/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.H
+++ b/src/renumber/renumberMethods/CuthillMcKeeRenumber/CuthillMcKeeRenumber.H
@@ -51,7 +51,7 @@ class CuthillMcKeeRenumber
 {
     // Private data
 
-        const Switch reverse_;
+        const bool reverse_;
 
 
     // Private Member Functions
diff --git a/src/sampling/sampledSurface/sampledTriSurfaceMesh/sampledTriSurfaceMesh.C b/src/sampling/sampledSurface/sampledTriSurfaceMesh/sampledTriSurfaceMesh.C
index 0421ee931d174785b2ff318855bbedad106d6f72..08e9700e4a6a46569ea8194e32c613efe5420258 100644
--- a/src/sampling/sampledSurface/sampledTriSurfaceMesh/sampledTriSurfaceMesh.C
+++ b/src/sampling/sampledSurface/sampledTriSurfaceMesh/sampledTriSurfaceMesh.C
@@ -688,7 +688,7 @@ Foam::sampledTriSurfaceMesh::sampledTriSurfaceMesh
     ),
     sampleSource_(samplingSourceNames_.lookup("source", dict)),
     needsUpdate_(true),
-    keepIds_(dict.lookupOrDefault<Switch>("keepIds", false)),
+    keepIds_(dict.lookupOrDefault("keepIds", false)),
     originalIds_(),
     zoneIds_(),
     sampleElements_(0),
diff --git a/src/sampling/surface/triSurfaceMesh/discreteSurface.C b/src/sampling/surface/triSurfaceMesh/discreteSurface.C
index e04f2b8abdaa65d9e1c455880ad19cd26a395b69..2336e80b9ead6076b87440dfc0c803044d857ecc 100644
--- a/src/sampling/surface/triSurfaceMesh/discreteSurface.C
+++ b/src/sampling/surface/triSurfaceMesh/discreteSurface.C
@@ -671,7 +671,7 @@ Foam::discreteSurface::discreteSurface
     interpolate_
     (
         allowInterpolate
-     && dict.lookupOrDefault<Switch>("interpolate", false)
+     && dict.lookupOrDefault("interpolate", false)
     ),
     surface_
     (
@@ -688,7 +688,7 @@ Foam::discreteSurface::discreteSurface
     ),
     sampleSource_(samplingSourceNames_.lookup("source", dict)),
     needsUpdate_(true),
-    keepIds_(dict.lookupOrDefault<Switch>("keepIds", false)),
+    keepIds_(dict.lookupOrDefault("keepIds", false)),
     originalIds_(),
     zoneIds_(),
     sampleElements_(0),
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
index ca42809813ebe9c02b20e57782ef9e7d3db05808..66af2aef684b3d8b10d424fafb99f048128655cb 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
@@ -79,7 +79,7 @@ greyDiffusiveRadiationMixedFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     TName_(dict.lookupOrDefault<word>("T", "T")),
-    solarLoad_(dict.lookupOrDefault<bool>("solarLoad", false))
+    solarLoad_(dict.lookupOrDefault("solarLoad", false))
 {
     if (dict.found("refValue"))
     {
diff --git a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
index f7adff2068e942b167f8b9b8566dc3f7d82d6d3c..ceb57719a3b042efa70935353bc094ac93505ba3 100644
--- a/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiation/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
@@ -69,7 +69,7 @@ greyDiffusiveViewFactorFixedValueFvPatchScalarField
 :
     fixedValueFvPatchScalarField(p, iF, dict, false),
     qro_("qro", dict, p.size()),
-    solarLoad_(dict.lookupOrDefault<bool>("solarLoad", false))
+    solarLoad_(dict.lookupOrDefault("solarLoad", false))
 {
     if (dict.found("value"))
     {