diff --git a/applications/solvers/combustion/PDRFoam/StCourantNo.H b/applications/solvers/combustion/PDRFoam/StCourantNo.H
index f755bb217bec204bc1f955680844fbd38447e611..8fac05d81c00be7dfa7d4ded60c1a2e1ffe84a3c 100644
--- a/applications/solvers/combustion/PDRFoam/StCourantNo.H
+++ b/applications/solvers/combustion/PDRFoam/StCourantNo.H
@@ -34,17 +34,14 @@ Description
 
     if (mesh.nInternalFaces())
     {
-        surfaceScalarField SfUfbyDelta =
-            mesh.surfaceInterpolation::deltaCoeffs()
-        *mag(phiSt/fvc::interpolate(rho));
+        scalarField sumPhi =
+            fvc::surfaceSum(mag(phiSt))().internalField()
+           /rho.internalField();
 
-        StCoNum =
-            max(SfUfbyDelta/mesh.magSf()).value()
-           *runTime.deltaTValue();
+        StCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
 
         meanStCoNum =
-            (sum(SfUfbyDelta)/sum(mesh.magSf())).value()
-        *runTime.deltaTValue();
+            0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
     }
 
     Info<< "St courant Number mean: " << meanStCoNum
diff --git a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H
index 1023a26c702b0fb519a3f63af2796fc91e07261e..d4d72cf6eff544b27275e0ac3622ec7615296d24 100644
--- a/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H
+++ b/applications/solvers/incompressible/adjointShapeOptimizationFoam/adjointContinuityErrs.H
@@ -30,10 +30,10 @@ Description
 \*---------------------------------------------------------------------------*/
 
 {
-    scalar sumLocalContErr = runTime.deltaT().value()*
+    scalar sumLocalContErr = runTime.deltaTValue()*
         mag(fvc::div(phia))().weightedAverage(mesh.V()).value();
 
-    scalar globalContErr = runTime.deltaT().value()*
+    scalar globalContErr = runTime.deltaTValue()*
         fvc::div(phia)().weightedAverage(mesh.V()).value();
     cumulativeContErr += globalContErr;
 
diff --git a/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H b/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H
index 65cd8e02cce4219fbcfe3eb7ed4d0d6ae40e6fc5..0dfa24316f288c59ce421092e857991b6e9140f2 100644
--- a/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H
+++ b/applications/solvers/incompressible/shallowWaterFoam/CourantNo.H
@@ -36,23 +36,23 @@ scalar waveCoNum = 0.0;
 
 if (mesh.nInternalFaces())
 {
-    surfaceScalarField SfUfbyDelta =
-        mesh.surfaceInterpolation::deltaCoeffs()
-       *mag(phi)/fvc::interpolate(h);
+    scalarField sumPhi =
+        fvc::surfaceSum(mag(phi))().internalField()
+       /h.internalField();
 
-    CoNum = max(SfUfbyDelta/mesh.magSf())
-        .value()*runTime.deltaTValue();
+    CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
 
-    meanCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf()))
-        .value()*runTime.deltaTValue();
+    meanCoNum =
+        0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
 
     // Gravity wave Courant number
-    waveCoNum =
-        0.5*max
+    waveCoNum = 0.25*gMax
+    (
+        fvc::surfaceSum
         (
-            mesh.surfaceInterpolation::deltaCoeffs()
-           *sqrt(fvc::interpolate(h))
-        ).value()*sqrt(magg).value()*runTime.deltaTValue();
+            fvc::interpolate(sqrt(h))*mesh.magSf()
+        )().internalField()/mesh.V().field()
+    )*sqrt(magg).value()*runTime.deltaTValue();
 }
 
 Info<< "Courant number mean: " << meanCoNum
diff --git a/applications/solvers/multiphase/cavitatingFoam/CourantNo.H b/applications/solvers/multiphase/cavitatingFoam/CourantNo.H
index d5c5c53cc69b9ba3e35eabb21177f8deebbdf8a2..8b26ba033e9f5f1352a6640cb625f863a6e622f2 100644
--- a/applications/solvers/multiphase/cavitatingFoam/CourantNo.H
+++ b/applications/solvers/multiphase/cavitatingFoam/CourantNo.H
@@ -35,19 +35,21 @@ scalar acousticCoNum = 0.0;
 
 if (mesh.nInternalFaces())
 {
-    surfaceScalarField SfUfbyDelta =
-        mesh.surfaceInterpolation::deltaCoeffs()*mag(phiv);
+    scalarField sumPhi =
+        fvc::surfaceSum(mag(phiv))().internalField();
 
-    CoNum = max(SfUfbyDelta/mesh.magSf())
-        .value()*runTime.deltaTValue();
+    CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
 
-    meanCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf()))
-        .value()*runTime.deltaTValue();
+    meanCoNum =
+        0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
 
-    acousticCoNum = max
+    acousticCoNum = 0.5*gMax
     (
-        mesh.surfaceInterpolation::deltaCoeffs()/sqrt(fvc::interpolate(psi))
-    ).value()*runTime.deltaTValue();
+        fvc::surfaceSum
+        (
+            fvc::interpolate(scalar(1)/sqrt(psi))*mesh.magSf()
+        )().internalField()/mesh.V().field()
+    )*runTime.deltaTValue();
 }
 
 Info<< "phiv Courant Number mean: " << meanCoNum
diff --git a/applications/solvers/multiphase/interFoam/alphaCourantNo.H b/applications/solvers/multiphase/interFoam/alphaCourantNo.H
index 12d1b933d40774c0f44e4d4d43e521ed8e0b6e9f..e5edfc76ca1dc79093fd108f2f09252f69f22531 100644
--- a/applications/solvers/multiphase/interFoam/alphaCourantNo.H
+++ b/applications/solvers/multiphase/interFoam/alphaCourantNo.H
@@ -43,10 +43,10 @@ if (mesh.nInternalFaces())
         pos(alpha1 - 0.01)*pos(0.99 - alpha1)
        *fvc::surfaceSum(mag(phi))().internalField();
 
-    alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaT().value();
+    alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
 
     meanAlphaCoNum =
-        0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaT().value();
+        0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
 }
 
 Info<< "Interface Courant Number mean: " << meanAlphaCoNum
diff --git a/applications/solvers/multiphase/interFoam/setDeltaT.H b/applications/solvers/multiphase/interFoam/setDeltaT.H
index b315dcd1a0695205339b26ae101423a2b0441242..b619ed90f9d44744a6dd0f31fccc23505d94f0a8 100644
--- a/applications/solvers/multiphase/interFoam/setDeltaT.H
+++ b/applications/solvers/multiphase/interFoam/setDeltaT.H
@@ -42,12 +42,12 @@ if (adjustTimeStep)
     (
         min
         (
-            deltaTFact*runTime.deltaT().value(),
+            deltaTFact*runTime.deltaTValue(),
             maxDeltaT
         )
     );
 
-    Info<< "deltaT = " <<  runTime.deltaT().value() << endl;
+    Info<< "deltaT = " <<  runTime.deltaTValue() << endl;
 }
 
 // ************************************************************************* //
diff --git a/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H b/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H
index a560a60d270ffcc3594b6aa9a53cb042c4cb551a..105149f87eaeb5c1d8463c778e322392b01eb7da 100644
--- a/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H
+++ b/applications/solvers/multiphase/interMixingFoam/alphaCourantNo.H
@@ -39,20 +39,16 @@ scalar meanAlphaCoNum = 0.0;
 
 if (mesh.nInternalFaces())
 {
-    surfaceScalarField alpha1f = fvc::interpolate(alpha1);
-    surfaceScalarField alpha2f = fvc::interpolate(alpha2);
-
-    surfaceScalarField SfUfbyDelta = max
+    scalarField sumPhi = max
     (
-        pos(alpha1f - 0.01)*pos(0.99 - alpha1f),
-        pos(alpha2f - 0.01)*pos(0.99 - alpha2f)
-    )*mesh.surfaceInterpolation::deltaCoeffs()*mag(phi);
+        pos(alpha1 - 0.01)*pos(0.99 - alpha1),
+        pos(alpha2 - 0.01)*pos(0.99 - alpha2)
+    )*fvc::surfaceSum(mag(phi))().internalField();
 
-    alphaCoNum = max(SfUfbyDelta/mesh.magSf())
-        .value()*runTime.deltaT().value();
+    alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
 
-    meanAlphaCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf()))
-        .value()*runTime.deltaT().value();
+    meanAlphaCoNum =
+        0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
 }
 
 Info<< "Interface Courant Number mean: " << meanAlphaCoNum
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H b/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H
index 50e64f5f51e5773d9f26cf0aa57e869f461b728f..a63ab62103e36c36581d607fd621df9bca405b6a 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H
+++ b/applications/solvers/multiphase/multiphaseInterFoam/alphaCourantNo.H
@@ -39,15 +39,14 @@ scalar meanAlphaCoNum = 0.0;
 
 if (mesh.nInternalFaces())
 {
-    surfaceScalarField SfUfbyDelta =
-        mixture.nearInterface()
-       *mesh.surfaceInterpolation::deltaCoeffs()*mag(phi);
+    scalarField sumPhi =
+        mixture.nearInterface()().internalField()
+       *fvc::surfaceSum(mag(phi))().internalField();
 
-    alphaCoNum = max(SfUfbyDelta/mesh.magSf())
-        .value()*runTime.deltaT().value();
+    alphaCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
 
-    meanAlphaCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf()))
-        .value()*runTime.deltaT().value();
+    meanAlphaCoNum =
+        0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
 }
 
 Info<< "Interface Courant Number mean: " << meanAlphaCoNum
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
index c0582b5c1392ecebd87a2c614e03813fe0add90b..22c45bad7182b33d5e7920f6c5654e0abbd6debd 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
@@ -457,12 +457,12 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::K
 }
 
 
-Foam::tmp<Foam::surfaceScalarField>
+Foam::tmp<Foam::volScalarField>
 Foam::multiphaseMixture::nearInterface() const
 {
-    tmp<surfaceScalarField> tnearInt
+    tmp<volScalarField> tnearInt
     (
-        new surfaceScalarField
+        new volScalarField
         (
             IOobject
             (
@@ -477,8 +477,7 @@ Foam::multiphaseMixture::nearInterface() const
 
     forAllConstIter(PtrDictionary<phase>, phases_, iter)
     {
-        surfaceScalarField alphaf = fvc::interpolate(iter());
-        tnearInt() = max(tnearInt(), pos(alphaf - 0.01)*pos(0.99 - alphaf));
+        tnearInt() = max(tnearInt(), pos(iter() - 0.01)*pos(0.99 - iter()));
     }
 
     return tnearInt;
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H
index 32a7f1011801caee40772f080cac21eb975d0ea9..6a58813e54e493b4f3cb6e5dd18381a651d502b5 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H
@@ -258,7 +258,7 @@ public:
 
         //- Indicator of the proximity of the interface
         //  Field values are 1 near and 0 away for the interface.
-        tmp<surfaceScalarField> nearInterface() const;
+        tmp<volScalarField> nearInterface() const;
 
         //- Solve for the mixture phase-fractions
         void solve();
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H b/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H
index 75dcd68c7fbde8e856b00651af8b22b3fbeb624a..ae6a13feb06fb051428dde4f1fb62fdd3c52e1ef 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/CourantNos.H
@@ -1,11 +1,10 @@
 #   include "CourantNo.H"
 
 {
-    scalar UrCoNum = max
+    scalar UrCoNum = 0.5*gMax
     (
-        mesh.surfaceInterpolation::deltaCoeffs()*mag(phia - phib)
-       /mesh.magSf()
-    ).value()*runTime.deltaT().value();
+        fvc::surfaceSum(mag(phia - phib))().internalField()/mesh.V().field()
+    )*runTime.deltaTValue();
 
     Info<< "Max Ur Courant Number = " << UrCoNum << endl;
 
diff --git a/src/dynamicFvMesh/include/meshCourantNo.H b/src/dynamicFvMesh/include/meshCourantNo.H
index 9ac0cb482fccaa9b2d4aeb9fc0a13e2eef635b05..501611db18d2c635adf4454a5a6383eb9c42c7d6 100644
--- a/src/dynamicFvMesh/include/meshCourantNo.H
+++ b/src/dynamicFvMesh/include/meshCourantNo.H
@@ -34,14 +34,13 @@ scalar meanMeshCoNum = 0.0;
 
 if (mesh.nInternalFaces())
 {
-    surfaceScalarField SfUfbyDelta =
-        mesh.surfaceInterpolation::deltaCoeffs()*mag(mesh.phi());
+    scalarField sumPhi =
+        fvc::surfaceSum(mag(mesh.phi()))().internalField();
 
-    meshCoNum = max(SfUfbyDelta/mesh.magSf())
-        .value()*runTime.deltaTValue();
+    meshCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
 
-    meanMeshCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf()))
-        .value()*runTime.deltaTValue();
+    meanMeshCoNum =
+        0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
 }
 
 Info<< "Mesh Courant Number mean: " << meanMeshCoNum
diff --git a/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H b/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H
index 73da862406d5e0f25850e686436a11d478f1ec7e..c96ddeb22ffa9f33765ef6e71e32d434c5096728 100644
--- a/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H
+++ b/src/finiteVolume/cfdTools/compressible/compressibleCourantNo.H
@@ -38,10 +38,10 @@ if (mesh.nInternalFaces())
         fvc::surfaceSum(mag(phi))().internalField()
        /rho.internalField();
 
-    CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaT().value();
+    CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
 
     meanCoNum =
-        0.5*(gSum(sumPhi)/sum(mesh.V().field()))*runTime.deltaT().value();
+        0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
 }
 
 Info<< "Courant Number mean: " << meanCoNum
diff --git a/src/finiteVolume/cfdTools/incompressible/CourantNo.H b/src/finiteVolume/cfdTools/incompressible/CourantNo.H
index caef48a39662fbf2a4d253df28085fa065a7addb..8b917e1f89fb2dc15e207c42d1a1c0b6d0320d52 100644
--- a/src/finiteVolume/cfdTools/incompressible/CourantNo.H
+++ b/src/finiteVolume/cfdTools/incompressible/CourantNo.H
@@ -37,10 +37,10 @@ if (mesh.nInternalFaces())
     scalarField sumPhi =
         fvc::surfaceSum(mag(phi))().internalField();
 
-    CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaT().value();
+    CoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();
 
     meanCoNum =
-        0.5*(gSum(sumPhi)/sum(mesh.V().field()))*runTime.deltaT().value();
+        0.5*(gSum(sumPhi)/gSum(mesh.V().field()))*runTime.deltaTValue();
 }
 
 Info<< "Courant Number mean: " << meanCoNum