From 17a8b1b86cc180fe43e3e66bf8039cda8dd3a139 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Mon, 18 Jun 2018 14:13:12 +0100
Subject: [PATCH] BUG: Correction to commit 5a12718

- corrected the mass based correction and updated the misleading function
  arguments

- moved the option to the optimisation switches, e.g.:

    OptimisationSwitches
    {
        experimentalDdtCorr 1;
    }

- default remains off/no (0)
---
 etc/controlDict                                        |  5 +++++
 .../finiteVolume/ddtSchemes/ddtScheme/ddtScheme.C      | 10 +++++-----
 .../finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H      |  2 +-
 .../finiteVolume/ddtSchemes/ddtScheme/ddtSchemeBase.C  |  4 ++--
 4 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/etc/controlDict b/etc/controlDict
index 704374a5fa..bc75281763 100644
--- a/etc/controlDict
+++ b/etc/controlDict
@@ -129,6 +129,11 @@ OptimisationSwitches
 
     //- Choose STL ASCII parser:  0=Flex, 1=Ragel, 2=Manual
     fileFormats::stl 0;
+
+    //- Use the updated ddt correction formulation introduced by openfoam org
+    //  in commit da787200.  Default is to use the formulation from v1712
+    //  see ddtScheme.C
+    experimentalDdtCorr 0;
 }
 
 
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.C
index d659e26e81..013ff96908 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.C
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.C
@@ -353,7 +353,7 @@ tmp<surfaceScalarField> ddtScheme<Type>::fvcDdtPhiCoeff
 template<class Type>
 tmp<surfaceScalarField> ddtScheme<Type>::fvcDdtPhiCoeff
 (
-    const GeometricField<Type, fvPatchField, volMesh>& U,
+    const GeometricField<Type, fvPatchField, volMesh>& rhoU,
     const fluxFieldType& phi,
     const volScalarField& rho
 )
@@ -362,9 +362,9 @@ tmp<surfaceScalarField> ddtScheme<Type>::fvcDdtPhiCoeff
     {
         return fvcDdtPhiCoeffExperimental
         (
-            U,
+            rhoU,
             phi,
-            (phi - fvc::dotInterpolate(mesh().Sf(), rho*U))
+            (phi - fvc::dotInterpolate(mesh().Sf(), rhoU))
            /fvc::interpolate(rho)
         );
     }
@@ -372,9 +372,9 @@ tmp<surfaceScalarField> ddtScheme<Type>::fvcDdtPhiCoeff
     {
         return fvcDdtPhiCoeff
         (
-            U,
+            rhoU,
             phi,
-            (phi - fvc::dotInterpolate(mesh().Sf(), rho*U))
+            (phi - fvc::dotInterpolate(mesh().Sf(), rhoU))
         );
     }
 }
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H
index 635145a5bc..8a8d660605 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H
@@ -257,7 +257,7 @@ public:
 
         tmp<surfaceScalarField> fvcDdtPhiCoeff
         (
-            const GeometricField<Type, fvPatchField, volMesh>& U,
+            const GeometricField<Type, fvPatchField, volMesh>& rhoU,
             const fluxFieldType& phi,
             const volScalarField& rho
         );
diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtSchemeBase.C b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtSchemeBase.C
index 8dac32555e..7b0fb8fc06 100644
--- a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtSchemeBase.C
+++ b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtSchemeBase.C
@@ -31,10 +31,10 @@ License
 
 bool Foam::fv::ddtSchemeBase::experimentalDdtCorr
 (
-    Foam::debug::infoSwitch("experimentalDdtCorr", 0)
+    Foam::debug::optimisationSwitch("experimentalDdtCorr", 0)
 );
 
-registerInfoSwitch
+registerOptSwitch
 (
     "experimentalDdtCorr",
     bool,
-- 
GitLab