From 438cc76abf07df22c5398004b2330c6fbab65cd2 Mon Sep 17 00:00:00 2001
From: "Dennis.Glaeser" <dennis.glaeser@iws.uni-stuttgart.de>
Date: Mon, 30 Mar 2020 18:38:43 +0200
Subject: [PATCH] [mpfa][localassembler] detect zero transmissibilities also in
 outside scvs

---
 .../cellcentered/mpfa/omethod/localassembler.hh            | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/dumux/discretization/cellcentered/mpfa/omethod/localassembler.hh b/dumux/discretization/cellcentered/mpfa/omethod/localassembler.hh
index 21da128381..32db83cc6a 100644
--- a/dumux/discretization/cellcentered/mpfa/omethod/localassembler.hh
+++ b/dumux/discretization/cellcentered/mpfa/omethod/localassembler.hh
@@ -250,9 +250,11 @@ private:
                     {
                         if (abs(wijk[faceIdx][0][localDir]) < wijZeroThresh)
                         {
-                            insideZeroWij = !curGlobalScvf.boundary();
                             if (!curIsDirichlet)
+                            {
+                                insideZeroWij = true;
                                 faceMarkers.emplace_back( std::make_pair(curLocalDofIdx, faceIdx) );
+                            }
                         }
                     }
 
@@ -308,7 +310,8 @@ private:
                             const auto& otherLocalScvf = iv.localScvf(otherLocalScvfIdx);
                             const auto otherLocalDofIdx = otherLocalScvf.localDofIndex();
 
-                            if (otherLocalDofIdx == curLocalDofIdx && insideZeroWij)
+                            // check for zero transmissibilities (skip if inside has been zero already)
+                            if (otherLocalDofIdx == curLocalDofIdx && !insideZeroWij)
                                 if (abs(wijk[faceIdx][idxOnScvf][localDir]) < wijZeroThresh)
                                     faceMarkers.emplace_back( std::make_pair(curLocalDofIdx, faceIdx) );
 
-- 
GitLab