From bd16b570be822b624f76f197105ba21879272bb8 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Tue, 27 Sep 2016 19:44:12 -0500
Subject: [PATCH] Fix gmsh triangle node ordering (only order 5 was wrong--but
 I replaced them all)

---
 meshpy/gmsh_reader.py | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/meshpy/gmsh_reader.py b/meshpy/gmsh_reader.py
index 846ba37..0c5020f 100644
--- a/meshpy/gmsh_reader.py
+++ b/meshpy/gmsh_reader.py
@@ -241,14 +241,27 @@ class GmshTriangularElement(GmshSimplexElementBase):
 
     @memoize_method
     def gmsh_node_tuples(self):
-        result = []
-        for tup in generate_triangle_vertex_tuples(self.order):
-            result.append(tup)
-        for tup in generate_triangle_edge_tuples(self.order):
-            result.append(tup)
-        for tup in generate_triangle_volume_tuples(self.order):
-            result.append(tup)
-        return result
+        return {
+                1: [
+                    (0, 0), (1, 0), (0, 1),
+                    ],
+                2: [
+                    (0, 0), (2, 0), (0, 2), (1, 0), (1, 1), (0, 1),
+                    ],
+                3: [
+                    (0, 0), (3, 0), (0, 3), (1, 0), (2, 0), (2, 1), (1, 2), (0, 2),
+                    (0, 1), (1, 1),
+                    ],
+                4: [
+                    (0, 0), (4, 0), (0, 4), (1, 0), (2, 0), (3, 0), (3, 1), (2, 2),
+                    (1, 3), (0, 3), (0, 2), (0, 1), (1, 1), (2, 1), (1, 2),
+                    ],
+                5: [
+                    (0, 0), (5, 0), (0, 5), (1, 0), (2, 0), (3, 0), (4, 0), (4, 1),
+                    (3, 2), (2, 3), (1, 4), (0, 4), (0, 3), (0, 2), (0, 1), (1, 1),
+                    (3, 1), (1, 3), (2, 1), (2, 2), (1, 2),
+                    ],
+                }[self.order]
 
 
 class GmshTetrahedralElement(GmshSimplexElementBase):
-- 
GitLab