From dee99d968350b65cad39a763fa349f3b5b40dd43 Mon Sep 17 00:00:00 2001
From: Melanie Lipp <melanie.lipp@iws.uni-stuttgart.de>
Date: Tue, 7 Sep 2021 11:11:50 +0200
Subject: [PATCH] [cvdstaggeredrefinedlocalresdidual] Fix factor for storage
 term at refinement boundary.

---
 dumux/assembly/cvdstaggeredrefinedlocalresidual.hh | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/dumux/assembly/cvdstaggeredrefinedlocalresidual.hh b/dumux/assembly/cvdstaggeredrefinedlocalresidual.hh
index c17846e..386d94e 100644
--- a/dumux/assembly/cvdstaggeredrefinedlocalresidual.hh
+++ b/dumux/assembly/cvdstaggeredrefinedlocalresidual.hh
@@ -363,9 +363,18 @@ public:
         // multiply by 0.5 because we only consider half of a staggered control volume here
         storage *= 0.5*scv.volume()*extrusionFactor;
 
-        if (scvf.neighbor() && scvf.outside().level() > scvf.inside().level())
+        // was used for coarse side to divide the volume to 1/4
+        // if (scvf.neighbor() && scvf.outside().level() > scvf.inside().level())
+        // {
+        //     storage *= 0.5;
+        // }
+
+        //we take the small volume (which is already half of what we want) and multiply by 0.5
+        //when adding to the residual also by 0.5
+        //to counteract 1/4 volume, we multiply by 2
+        if(!scvf.isSimple() && scvf.isInsideFiner())
         {
-            storage *= 0.5;
+            storage *= 2.0;
         }
 
         storage /= timeLoop_->timeStepSize();
-- 
GitLab