ctlee / gamer

Geometry-preserving Adaptive Mesher
https://gamer.readthedocs.io
Other
32 stars 10 forks source link

Possibility of supporting other tetrahedral mesh formats #44

Open WeiliangChenOIST opened 4 years ago

WeiliangChenOIST commented 4 years ago

Hi, I wonder if there is any plan to support exporting the mesh to other formats such as Abaqus and Gmsh. Alternatively, could you please recommend any format converter? At the moment I try to use https://github.com/nschloe/meshio to convert the Dolfin output to other formats, but it seems the region tags of the elements are dropped during importing.

ctlee commented 4 years ago

@justinlaughlin and I have plans to implement exports to other mesh file formats (e.g., see #43) Gmsh for sure and possibly Abaqus could be included. I don't know for sure of any format converters which will preserve the region tags of elements. We have some options to expedite implementation.

If you are familiar with the file formats and are comfortable with C++, it would be awesome if you were willing to implement read/write functions. Just fork this project and send us a pull request -- learn how to contribute. We're happy to provide guidance on how to interact with our data structures. Code in TetMesh.cpp can serve as a reference as well.

Otherwise, any recommendations or guidance you can provide to us about the file format of each type would also be helpful. For example, in the Gmsh format what are surface and volume markers called?

WeiliangChenOIST commented 4 years ago

Thanks for the reply.

For Abaqus format here are the description and examples. https://classes.engineering.wustl.edu/2009/spring/mase5513/abaqus/docs/v6.6/books/gss/default.htm?startat=ch02s02.html https://www.seas.harvard.edu/courses/es128/Truss3.inp In my opinion, the ELSET property is a suitable candidate for defining the regions.

For Gmsh, the formats are defined in (http://gmsh.info/doc/texinfo/gmsh.html#File-formats), the current version is 4.1, but I think ver 2 is still widely used.

In Gmsh ver. 2 multiple tags can be assigned to each element elm-number elm-type number-of-tags < tag > … node-number-list. But I notice that some applications only support the first tag and drop the others. I am not quite familiar with ver.4, but physicalTag seems to be the most relevant one.