From 9601c992579ff0069b72d24f0b5bdf1f84148fe6 Mon Sep 17 00:00:00 2001
From: DennisGlaeser <dennis.glaeser@iws.uni-stuttgart.de>
Date: Wed, 6 Dec 2017 18:59:37 +0100
Subject: [PATCH] [mpfa][fluxvarcachefiller] avoid code duplication

---
 .../mpfa/fluxvariablescachefiller.hh          | 47 +++++++------------
 1 file changed, 16 insertions(+), 31 deletions(-)

diff --git a/dumux/discretization/cellcentered/mpfa/fluxvariablescachefiller.hh b/dumux/discretization/cellcentered/mpfa/fluxvariablescachefiller.hh
index ee92e33030..2993570692 100644
--- a/dumux/discretization/cellcentered/mpfa/fluxvariablescachefiller.hh
+++ b/dumux/discretization/cellcentered/mpfa/fluxvariablescachefiller.hh
@@ -189,45 +189,30 @@ private:
         // First we upate data which are not dependent on the physical processes.
         // We store pointers to the other flux var caches, so that we have to obtain
         // this data only once and can use it again in the sub-cache fillers.
-        if (forceUpdateAll)
-        {
-            const auto numGlobalScvfs = iv.localFaceData().size();
-            std::vector<const SubControlVolumeFace*> ivScvfs(numGlobalScvfs);
-            std::vector<FluxVariablesCache*> ivFluxVarCaches(numGlobalScvfs);
+        const auto numGlobalScvfs = iv.localFaceData().size();
+        std::vector<const SubControlVolumeFace*> ivScvfs(numGlobalScvfs);
+        std::vector<FluxVariablesCache*> ivFluxVarCaches(numGlobalScvfs);
 
-            unsigned int i = 0;
-            for (const auto& d : iv.localFaceData())
-            {
-                // obtain the scvf
-                const auto& scvfJ = fvGeometry().scvf(d.globalScvfIndex());
-                ivScvfs[i] = &scvfJ;
-                ivFluxVarCaches[i] = &fluxVarsCacheContainer[scvfJ];
-                ivFluxVarCaches[i]->setIvIndexInContainer(ivIndexInContainer);
-                ivFluxVarCaches[i]->setUpdateStatus(true);
-                i++;
-            }
+        unsigned int i = 0;
+        for (const auto& d : iv.localFaceData())
+        {
+            // obtain the scvf
+            const auto& scvfJ = fvGeometry().scvf(d.globalScvfIndex());
+            ivScvfs[i] = &scvfJ;
+            ivFluxVarCaches[i] = &fluxVarsCacheContainer[scvfJ];
+            ivFluxVarCaches[i]->setIvIndexInContainer(ivIndexInContainer);
+            ivFluxVarCaches[i]->setUpdateStatus(true);
+            i++;
+        }
 
+        if (forceUpdateAll)
+        {
             fillAdvection(fluxVarsCacheContainer, iv, handle, ivScvfs, ivFluxVarCaches);
             fillDiffusion(fluxVarsCacheContainer, iv, handle, ivScvfs, ivFluxVarCaches);
             fillHeatConduction(fluxVarsCacheContainer, iv, handle, ivScvfs, ivFluxVarCaches);
         }
         else
         {
-            const auto numGlobalScvfs = iv.localFaceData().size();
-            std::vector<const SubControlVolumeFace*> ivScvfs(numGlobalScvfs);
-            std::vector<FluxVariablesCache*> ivFluxVarCaches(numGlobalScvfs);
-
-            unsigned int i = 0;
-            for (const auto& d : iv.localFaceData())
-            {
-                // the iv index has been set already
-                const auto& scvfJ = fvGeometry().scvf(d.globalScvfIndex());
-                ivScvfs[i] = &scvfJ;
-                ivFluxVarCaches[i] = &fluxVarsCacheContainer[scvfJ];
-                ivFluxVarCaches[i]->setUpdateStatus(true);
-                i++;
-            }
-
             if (doAdvection && soldependentAdvection)
                 fillAdvection(fluxVarsCacheContainer, iv, handle, ivScvfs, ivFluxVarCaches);
             if (doDiffusion && soldependentDiffusion)
-- 
GitLab