diff --git a/dune/gfe/parallel/matrixcommunicator.hh b/dune/gfe/parallel/matrixcommunicator.hh index 90293bf11fc6d8cce3a4c8970893dfbf90be9268..f73b4c14adb12556d9b6e7d0af3f3bdd5d2743cb 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; }