From 2fabb17dc0dcd3307a38a197a7bd684eb21e36bd Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Sat, 9 Jan 2016 15:48:35 -0600 Subject: [PATCH] Add meshmode.mesh.io.from_meshpy --- meshmode/mesh/io.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/meshmode/mesh/io.py b/meshmode/mesh/io.py index 38617cca..96e333dd 100644 --- a/meshmode/mesh/io.py +++ b/meshmode/mesh/io.py @@ -39,6 +39,7 @@ __doc__ = """ .. autofunction:: read_gmsh .. autofunction:: generate_gmsh +.. autofunction:: from_meshpy """ @@ -179,6 +180,8 @@ class GmshMeshReceiver(GmshMeshReceiverBase): # }}} +# {{{ gmsh + def read_gmsh(filename, force_ambient_dim=None): """Read a gmsh mesh file from *filename* and return a :class:`meshmode.mesh.Mesh`. @@ -229,3 +232,32 @@ def generate_gmsh(source, dimensions, order=None, other_options=[], break return mesh + +# }}} + + +# {{{ meshpy + +def from_meshpy(mesh_info, order): + """Imports a mesh from a :mod:`meshpy` *mesh_info* data structure, + which may be generated by either :mod:`meshpy.triangle` or + :mod:`meshpy_tet`. + """ + from meshmode.mesh import Mesh + from meshmode.mesh.generation import make_group_from_vertices + + vertices = np.array(mesh_info.points).T + elements = np.array(mesh_info.elements, np.int32) + + grp = make_group_from_vertices(vertices, elements, order) + + # FIXME: Should transfer boundary/volume markers + + return Mesh( + vertices=vertices, groups=[grp], + nodal_adjacency=None, + facial_adjacency_groups=None) + +# }}} + +# vim: foldmethod=marker -- GitLab