From daa99760eb5e525246a51e419fe7d9971ca319e1 Mon Sep 17 00:00:00 2001
From: Kilian Weishaupt <kilian.weishaupt@iws.uni-stuttgart.de>
Date: Fri, 10 Nov 2017 21:06:06 +0100
Subject: [PATCH] [staggered] Account for limitations of dune field vector

* does not support /, use =/ instead
* intialize with (0.0) instead of  = 0.0
---
 dumux/assembly/staggeredlocalassembler.hh | 18 +++++++++++-------
 dumux/implicit/staggered/localresidual.hh |  2 +-
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/dumux/assembly/staggeredlocalassembler.hh b/dumux/assembly/staggeredlocalassembler.hh
index f363cf2c04..4cfec4176d 100644
--- a/dumux/assembly/staggeredlocalassembler.hh
+++ b/dumux/assembly/staggeredlocalassembler.hh
@@ -337,11 +337,12 @@ static void dCCdCC_(Assembler& assembler,
            ElementSolutionVector elemSol{std::move(priVars)};
            curVolVars.update(elemSol, problem, elementJ, scvJ);
 
-          const auto deflectedResidual = localResidual.evalCellCenter(problem, element, fvGeometry, prevElemVolVars, curElemVolVars,
-                                         prevElemFaceVars, curElemFaceVars,
-                                         elemBcTypes, elemFluxVarsCache);
+           const auto deflectedResidual = localResidual.evalCellCenter(problem, element, fvGeometry, prevElemVolVars, curElemVolVars,
+                                          prevElemFaceVars, curElemFaceVars,
+                                          elemBcTypes, elemFluxVarsCache);
 
-           const auto partialDeriv = (deflectedResidual - ccResidual) / eps;
+           auto partialDeriv = (deflectedResidual - ccResidual);
+           partialDeriv /= eps;
 
            // update the global jacobian matrix with the current partial derivatives
            updateGlobalJacobian_(matrix[cellCenterIdx][cellCenterIdx], cellCenterGlobalI, globalJ, pvIdx, partialDeriv);
@@ -402,7 +403,8 @@ static void dCCdFace_(Assembler& assembler,
                                           prevElemFaceVars, curElemFaceVars,
                                           elemBcTypes, elemFluxVarsCache);
 
-           const auto partialDeriv = (deflectedResidual - ccResidual) / eps;
+           auto partialDeriv = (deflectedResidual - ccResidual);
+           partialDeriv /= eps;
 
            // update the global jacobian matrix with the current partial derivatives
            updateGlobalJacobian_(matrix[cellCenterIdx][faceIdx], cellCenterGlobalI, globalJ, pvIdx - Indices::faceOffset, partialDeriv);
@@ -468,7 +470,8 @@ static void dFacedCC_(Assembler& assembler,
                                               prevElemFaceVars, curElemFaceVars,
                                               elemBcTypes, elemFluxVarsCache);
 
-               const auto partialDeriv = (deflectedResidual - cachedResidual[scvf.localFaceIdx()]) / eps;
+               auto partialDeriv = (deflectedResidual - cachedResidual[scvf.localFaceIdx()]);
+               partialDeriv /= eps;
 
                // update the global jacobian matrix with the current partial derivatives
                updateGlobalJacobian_(matrix[faceIdx][cellCenterIdx], faceGlobalI, globalJ, pvIdx, partialDeriv);
@@ -531,7 +534,8 @@ static void dFacedFace_(Assembler& assembler,
                                               prevElemFaceVars, curElemFaceVars,
                                               elemBcTypes, elemFluxVarsCache);
 
-               const auto partialDeriv = (deflectedResidual - cachedResidual[scvf.localFaceIdx()]) / eps;
+               auto partialDeriv = (deflectedResidual - cachedResidual[scvf.localFaceIdx()]);
+               partialDeriv /= eps;
 
                // update the global jacobian matrix with the current partial derivatives
                updateGlobalJacobian_(matrix[faceIdx][faceIdx], faceGlobalI, globalJ, pvIdx - Indices::faceOffset, partialDeriv);
diff --git a/dumux/implicit/staggered/localresidual.hh b/dumux/implicit/staggered/localresidual.hh
index eca59a79aa..7be67fc539 100644
--- a/dumux/implicit/staggered/localresidual.hh
+++ b/dumux/implicit/staggered/localresidual.hh
@@ -336,7 +336,7 @@ protected:
             prevCCStorage *= prevVolVars.extrusionFactor();
             curCCStorage *= curVolVars.extrusionFactor();
 
-            CellCenterResidual storageTerm = 0.0;
+            CellCenterResidual storageTerm(0.0);
 
             storageTerm = std::move(curCCStorage);
             storageTerm -= std::move(prevCCStorage);
-- 
GitLab