From d957c7b7c2b132e019fdcbc8918492c9e7f859b6 Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Mon, 21 Jul 2014 14:50:57 +0200
Subject: [PATCH] [Cleanup] Control grid selection through a header

---
 src/explicitgrid.hh | 10 +---------
 src/gridselector.hh | 24 ++++++++++++++++++++++++
 src/sand-wedge.cc   | 15 +--------------
 3 files changed, 26 insertions(+), 23 deletions(-)
 create mode 100644 src/gridselector.hh

diff --git a/src/explicitgrid.hh b/src/explicitgrid.hh
index ee691f08..fcbac18c 100644
--- a/src/explicitgrid.hh
+++ b/src/explicitgrid.hh
@@ -1,15 +1,7 @@
 #ifndef SRC_EXPLICITGRID_HH
 #define SRC_EXPLICITGRID_HH
 
-#if !HAVE_ALUGRID
-#error ALUGRID is required
-#endif
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wignored-qualifiers"
-#include <dune/grid/alugrid.hh>
-#pragma clang diagnostic pop
+#include "gridselector.hh"
 
-using Grid = Dune::ALUGrid<MY_DIM, MY_DIM, Dune::simplex, Dune::nonconforming>;
 using GridView = Grid::LeafGridView;
 #endif
diff --git a/src/gridselector.hh b/src/gridselector.hh
new file mode 100644
index 00000000..0940e87a
--- /dev/null
+++ b/src/gridselector.hh
@@ -0,0 +1,24 @@
+#ifndef MY_DIM
+#error MY_DIM unset
+#endif
+
+#define WANT_ALUGRID 0
+
+#define WANT_GRID WANT_ALUGRID
+
+#if WANT_GRID == WANT_ALUGRID
+
+#if !HAVE_ALUGRID
+#error ALUGRID was requested but not found
+#endif
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wignored-qualifiers"
+#include <dune/grid/alugrid.hh>
+#pragma clang diagnostic pop
+using Grid = Dune::ALUGrid<MY_DIM, MY_DIM, Dune::simplex, Dune::nonconforming>;
+
+#else
+
+#error requested a grid that does not exist
+
+#endif
diff --git a/src/sand-wedge.cc b/src/sand-wedge.cc
index 74d93ab0..0dfdc6f0 100644
--- a/src/sand-wedge.cc
+++ b/src/sand-wedge.cc
@@ -16,14 +16,6 @@
 #error datadir unset
 #endif
 
-#ifndef MY_DIM
-#error MY_DIM unset
-#endif
-
-#if !HAVE_ALUGRID
-#error ALUGRID is required
-#endif
-
 #include <cmath>
 #include <exception>
 #include <fstream>
@@ -38,11 +30,6 @@
 #include <dune/common/parametertree.hh>
 #include <dune/common/parametertreeparser.hh>
 
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wignored-qualifiers"
-#include <dune/grid/alugrid.hh>
-#pragma clang diagnostic pop
-
 #include <dune/grid/common/mcmgmapper.hh>
 #include <dune/istl/bcrsmatrix.hh>
 #include <dune/istl/bvector.hh>
@@ -74,6 +61,7 @@
 #include "enums.hh"
 #include "fixedpointiterator.hh"
 #include "friction_writer.hh"
+#include "gridselector.hh"
 #include "sand-wedge-data/mybody.hh"
 #include "sand-wedge-data/mygeometry.hh"
 #include "sand-wedge-data/myglobalfrictiondata.hh"
@@ -103,7 +91,6 @@ int main(int argc, char *argv[]) {
     MyGeometry::write();
 
     // {{{ Set up grid
-    using Grid = Dune::ALUGrid<dims, dims, Dune::simplex, Dune::nonconforming>;
     GridConstructor<Grid> gridConstructor;
     auto grid = gridConstructor.getGrid();
 
-- 
GitLab