From b08e8e1904c861fff720a62412d517ffa62a9678 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://openfoam.org>
Date: Tue, 17 Oct 2017 12:17:24 +0100
Subject: [PATCH] ENH: functionObjects::wallHeatFlux: More efficient evaluation
 of heat-flux

which avoids the need for field interpolation and snGrad specification and
evaluation.

Resolves patch request https://bugs.openfoam.org/view.php?id=2725

wallHeatFlux: Filter out coupled patches

Resolves bug-report https://bugs.openfoam.org/view.php?id=2776
---
 .../field/wallHeatFlux/wallHeatFlux.C            | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
index 895a88a0c2a..94c3326a1df 100644
--- a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
+++ b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
@@ -66,15 +66,18 @@ void Foam::functionObjects::wallHeatFlux::calcHeatFlux
     volScalarField& wallHeatFlux
 )
 {
-    surfaceScalarField heatFlux(fvc::interpolate(alpha)*fvc::snGrad(he));
-
     volScalarField::Boundary& wallHeatFluxBf = wallHeatFlux.boundaryFieldRef();
 
-    const surfaceScalarField::Boundary& heatFluxBf = heatFlux.boundaryField();
+    const volScalarField::Boundary& heBf = he.boundaryField();
+
+    const volScalarField::Boundary& alphaBf = alpha.boundaryField();
 
     forAll(wallHeatFluxBf, patchi)
     {
-        wallHeatFluxBf[patchi] = heatFluxBf[patchi];
+        if (!wallHeatFluxBf[patchi].coupled())
+        {
+            wallHeatFluxBf[patchi] = alphaBf[patchi]*heBf[patchi].snGrad();
+        }
     }
 
     if (foundObject<volScalarField>(qrName_))
@@ -85,7 +88,10 @@ void Foam::functionObjects::wallHeatFlux::calcHeatFlux
 
         forAll(wallHeatFluxBf, patchi)
         {
-            wallHeatFluxBf[patchi] -= radHeatFluxBf[patchi];
+            if (!wallHeatFluxBf[patchi].coupled())
+            {
+                wallHeatFluxBf[patchi] -= radHeatFluxBf[patchi];
+            }
         }
     }
 }
-- 
GitLab