From dd60a617f6d0824e5f5b945782fdc4dc9efe2c75 Mon Sep 17 00:00:00 2001 From: Kilian <kilian.weishaupt@iws.uni-stuttgart.de> Date: Wed, 27 Mar 2019 16:24:46 +0100 Subject: [PATCH] [navierstokes][localresidual] Only retrieve neumannFluxes once * before, fluxes were called for each eqIdx --- .../navierstokes/staggered/localresidual.hh | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/dumux/freeflow/navierstokes/staggered/localresidual.hh b/dumux/freeflow/navierstokes/staggered/localresidual.hh index c0a57e2d85..c343b441aa 100644 --- a/dumux/freeflow/navierstokes/staggered/localresidual.hh +++ b/dumux/freeflow/navierstokes/staggered/localresidual.hh @@ -204,8 +204,6 @@ public: if (bcTypes.isSymmetry()) return result; - const auto extrusionFactor = elemVolVars[scvf.insideScvIdx()].extrusionFactor(); - // treat Dirichlet and outflow BCs result = computeFluxForCellCenter(problem, element, fvGeometry, elemVolVars, elemFaceVars, scvf, elemFluxVarsCache); @@ -213,13 +211,13 @@ public: static constexpr auto numEqCellCenter = CellCenterResidual::dimension; if (bcTypes.hasNeumann()) { - for(int eqIdx = 0; eqIdx < numEqCellCenter; ++eqIdx) + const auto extrusionFactor = elemVolVars[scvf.insideScvIdx()].extrusionFactor(); + const auto neumannFluxes = problem.neumann(element, fvGeometry, elemVolVars, elemFaceVars, scvf); + + for (int eqIdx = 0; eqIdx < numEqCellCenter; ++eqIdx) { - if(bcTypes.isNeumann(eqIdx + cellCenterOffset)) - { - result[eqIdx] = problem.neumann(element, fvGeometry, elemVolVars, elemFaceVars, scvf)[eqIdx + cellCenterOffset] - * extrusionFactor * scvf.area(); - } + if (bcTypes.isNeumann(eqIdx + cellCenterOffset)) + result[eqIdx] = neumannFluxes[eqIdx + cellCenterOffset] * extrusionFactor * scvf.area(); } } -- GitLab