From 5fd80db67ef6c8072262506392b53c36504ef4cf Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Mon, 30 Jan 2017 03:00:34 -0600 Subject: [PATCH] Reorder gmsh vertices (not just nodes) when loading quad meshes --- meshmode/mesh/io.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/meshmode/mesh/io.py b/meshmode/mesh/io.py index f3cdaea8..f4d7acc8 100644 --- a/meshmode/mesh/io.py +++ b/meshmode/mesh/io.py @@ -177,9 +177,20 @@ class GmshMeshReceiver(GmshMeshReceiverBase): np.ones(ngroup_elements, np.bool)) elif isinstance(group_el_type, GmshTensorProductElementBase): + gmsh_vertex_tuples = type(group_el_type)(order=1).gmsh_node_tuples() + gmsh_vertex_tuples_loc_dict = dict( + (gvt, i) + for i, gvt in enumerate(gmsh_vertex_tuples)) + + from pytools import ( + generate_nonnegative_integer_tuples_below as gnitb) + vertex_shuffle = np.array([ + gmsh_vertex_tuples_loc_dict[vt] + for vt in gnitb(2, group_el_type.dimensions)]) + group = TensorProductElementGroup( group_el_type.order, - vertex_indices, + vertex_indices[:, vertex_shuffle], nodes, unit_nodes=unit_nodes ) -- GitLab