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