From 40bc7185580e739757598342e29a9cd867ba682e Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Mon, 5 Nov 2012 16:58:36 +0000
Subject: [PATCH] allow reading of gmsh input files

[[Imported from SVN: r8965]]
---
 harmonicmaps-eoc.cc | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/harmonicmaps-eoc.cc b/harmonicmaps-eoc.cc
index 4e9305b4..19a3bdde 100644
--- a/harmonicmaps-eoc.cc
+++ b/harmonicmaps-eoc.cc
@@ -15,6 +15,7 @@ const int order = 3;
 #include <dune/grid/utility/structuredgridfactory.hh>
 #include <dune/grid/io/file/amirameshwriter.hh>
 #include <dune/grid/io/file/amirameshreader.hh>
+#include <dune/grid/io/file/gmshreader.hh>
 
 #include <dune/fufem/functionspacebases/p1nodalbasis.hh>
 #include <dune/fufem/functionspacebases/p2nodalbasis.hh>
@@ -173,6 +174,9 @@ int main (int argc, char *argv[]) try
     const int baseIterations      = parameterSet.get<int>("baseIt");
     const double baseTolerance    = parameterSet.get<double>("baseTolerance");
 
+    // grid file
+    std::string gridFileName = parameterSet.get<std::string>("gridFile");
+    
     // only if a structured grid is used
     const int numBaseElements = parameterSet.get<int>("numBaseElements");
     FieldVector<double,dim> lowerLeft  = parameterSet.get<FieldVector<double,dim> >("lowerLeft");
@@ -194,7 +198,11 @@ int main (int argc, char *argv[]) try
                                                                            upperRight,
                                                                            elements);
     } else {
-        referenceGrid = shared_ptr<GridType>(AmiraMeshReader<GridType>::read(parameterSet.get<std::string>("gridFile")));
+        
+        if (gridFileName.rfind(".msh")!=std::string::npos)
+            referenceGrid = shared_ptr<GridType>(GmshReader<GridType>::read(gridFileName));
+        else    
+            referenceGrid = shared_ptr<GridType>(AmiraMeshReader<GridType>::read(gridFileName));
     }
     
     referenceGrid->globalRefine(numLevels-1);
-- 
GitLab