GitHub - nschloe/meshio: input/output for many mesh formats
source link: https://github.com/nschloe/meshio
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
I/O for mesh files.
There are various mesh formats available for representing unstructured meshes. meshio can read and write all of the following and smoothly converts between them:
- Abaqus
- ANSYS msh
- CGNS
- DOLFIN XML
- Exodus
- FLAC3D
- H5M
- Kratos/MDPA
- Medit
- MED/Salome
- Nastran (bulk data)
- Gmsh (versions 2 and 4)
- OBJ
- OFF
- PERMAS
- PLY
- STL
- TetGen .node/.ele
- SVG (2D only, output only)
- VTK
- VTU
- XDMF
Install with
pip3 install meshio[all] --user
and simply call
meshio-convert input.msh output.vtu
with any of the supported formats.
In Python, simply do
import meshio mesh = meshio.read(filename) # optionally specify file_format # mesh.points, mesh.cells, ...
to read a mesh. To write, do
points = numpy.array([ [0.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0], ]) cells = { "triangle": numpy.array([ [0, 1, 2] ]) } meshio.write_points_cells( "foo.vtk", points, cells, # Optionally provide extra data on points, cells, etc. # point_data=point_data, # cell_data=cell_data, # field_data=field_data )
or explicitly create a mesh object for writing
mesh = meshio.Mesh(points, cells) meshio.write("foo.vtk", mesh)
For both input and output, you can optionally specify the exact file_format
(in case you would like to enforce ASCII over binary VTK, for example).
Time series
The XDMF format supports time series with a shared mesh. You can write times series data using meshio with
with meshio.XdmfTimeSeriesWriter(filename) as writer: writer.write_points_cells(points, cells) for t in [0.0, 0.1, 0.21]: writer.write_data(t, point_data={"phi": data})
and read it with
with meshio.XdmfTimeSeriesReader(filename) as reader: points, cells = reader.read_points_cells() for k in range(reader.num_steps): t, point_data, cell_data = reader.read_data(k)
Installation
meshio is available from the Python Package Index, so simply do
pip3 install meshio --user
to install.
Additional dependencies (netcdf4
, h5py
and lxml
) are required for some of the
output formats and can be pulled in by
pip install -U meshio[all]
Testing
To run the meshio unit tests, check out this repository and type
pytest
License
meshio is published under the MIT license.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK