From f7bb43b041e47e7f5fd159b528320d12c8992d6c Mon Sep 17 00:00:00 2001
From: Samuel Scherrer <samuel.scherrer@posteo.de>
Date: Wed, 17 Jul 2019 16:07:11 +0200
Subject: [PATCH] [io][grid] Add GmshBoundaryFlag class in gridmanager_alu.hh

For gmsh we always want the intersection.boundarySegmentIndex as a
boundary flag, while for DGF file Alu grid needs to use the non-standard
intersection.impl().boundaryId().
---
 dumux/io/grid/gridmanager_alu.hh | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/dumux/io/grid/gridmanager_alu.hh b/dumux/io/grid/gridmanager_alu.hh
index 7de720c81f..928a811d6a 100644
--- a/dumux/io/grid/gridmanager_alu.hh
+++ b/dumux/io/grid/gridmanager_alu.hh
@@ -219,6 +219,28 @@ private:
     int flag_;
 };
 
+
+template<class Grid>
+class GmshBoundaryFlag
+{
+public:
+    GmshBoundaryFlag() : flag_(-1) {}
+
+    template<class Intersection>
+    GmshBoundaryFlag(const Intersection& i) : flag_(-1)
+    {
+        if (i.boundary())
+            flag_ = i.boundarySegmentIndex();
+    }
+
+    using value_type = std::size_t;
+
+    value_type get() const { return flag_; }
+
+private:
+    value_type flag_;
+};
+
 #endif // DUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS
 #endif // HAVE_DUNE_ALUGRID
 
-- 
GitLab