{
  volScalarField& rDeltaT = trDeltaT.ref();

  scalar rDeltaTSmoothingCoeff
  (
      runTime.controlDict().lookupOrDefault<scalar>
      (
          "rDeltaTSmoothingCoeff",
          0.02
      )
  );

  // Set the reciprocal time-step from the local Courant number
  rDeltaT.ref() = max
  (
      1/dimensionedScalar("maxDeltaT", dimTime, maxDeltaT),
      fvc::surfaceSum(amaxSf)()()
      /((2*maxCo)*mesh.V())
  );

  // Update tho boundary values of the reciprocal time-step
  rDeltaT.correctBoundaryConditions();

  fvc::smooth(rDeltaT, rDeltaTSmoothingCoeff);

  Info<< "Flow time scale min/max = "
  << gMin(1/rDeltaT.primitiveField())
  << ", " << gMax(1/rDeltaT.primitiveField()) << endl;
}
