From afe604a2dbfbda99c95e73faf51f0f94b719c936 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Wed, 5 Nov 2014 08:48:43 +0000
Subject: [PATCH] Don't try and compute localToGlobal map for subentities that
 don't have dofs

[[Imported from SVN: r9956]]
---
 dune/gfe/parallel/matrixcommunicator.hh | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/dune/gfe/parallel/matrixcommunicator.hh b/dune/gfe/parallel/matrixcommunicator.hh
index 90293bf1..f73b4c14 100644
--- a/dune/gfe/parallel/matrixcommunicator.hh
+++ b/dune/gfe/parallel/matrixcommunicator.hh
@@ -128,13 +128,15 @@ private:
       for (int codim = 0; codim <= GridView::dimension; codim++)
         for (size_t i=0; i<it->subEntities(codim); i++)
         {
-          typename GUIndex::Index localIdx = localMapper1_.map(*it,i,codim);
-          typename GUIndex::Index globalIdx = guIndex1_.subIndex(*it,i,codim);
-          localToGlobal1_[localIdx] = globalIdx;
-
-          localIdx = localMapper2_.map(*it,i,codim);
-          globalIdx = guIndex2_.subIndex(*it,i,codim);
-          localToGlobal2_[localIdx] = globalIdx;
+          typename GUIndex::Index localIdx;
+          typename GUIndex::Index globalIdx;
+          if (localMapper1_.contains(*it,i,codim,localIdx)
+              and guIndex1_.contains(*it,i,codim,globalIdx))
+            localToGlobal1_[localIdx] = globalIdx;
+
+          if (localMapper2_.contains(*it,i,codim,localIdx)
+              and guIndex2_.contains(*it,i,codim,globalIdx))
+            localToGlobal2_[localIdx] = globalIdx;
         }
 
 
-- 
GitLab