I/O for various mesh formats
Project description
# meshio
[](https://circleci.com/gh/nschloe/meshio)
[](https://codecov.io/gh/nschloe/meshio)
[](https://github.com/ambv/black)
[](https://pypi.org/project/meshio)
[](https://tracker.debian.org/pkg/python-meshio)
[](https://doi.org/10.5281/zenodo.1173115)
[](https://github.com/nschloe/meshio)
<p align="center">
<img src="https://nschloe.github.io/meshio/meshio_logo.svg" width="20%">
</p>
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](http://abaqus.software.polimi.it/v6.14/index.html)
* [ANSYS msh](http://www.afs.enea.it/fluent/Public/Fluent-Doc/PDF/chp03.pdf)
* [DOLFIN XML](http://manpages.ubuntu.com/manpages/wily/man1/dolfin-convert.1.html)
* [Exodus](https://cubit.sandia.gov/public/13.2/help_manual/WebHelp/finite_element_model/exodus/block_specification.htm)
* [H5M](https://www.mcs.anl.gov/~fathom/moab-docs/h5mmain.html)
* [Kratos/MDPA](https://github.com/KratosMultiphysics/Kratos/wiki/Input-data)
* [Medit](https://people.sc.fsu.edu/~jburkardt/data/medit/medit.html)
* [MED/Salome](http://docs.salome-platform.org/latest/dev/MEDCoupling/med-file.html)
* [Gmsh](http://gmsh.info/doc/texinfo/gmsh.html#File-formats) (versions 2 and 4)
* [OFF](http://segeval.cs.princeton.edu/public/off_format.html)
* [PERMAS](http://www.intes.de)
* [STL](https://en.wikipedia.org/wiki/STL_(file_format))
* [SVG](https://www.w3.org/TR/SVG/) (2D only, output only)
* [VTK](https://www.vtk.org/wp-content/uploads/2015/04/file-formats.pdf)
* [VTU](https://www.vtk.org/Wiki/VTK_XML_Formats)
* [XDMF](http://www.xdmf.org/index.php/XDMF_Model_and_Format)
Simply call
```
meshio-convert input.msh output.vtu
```
with any of the supported formats.
In Python, simply call
```python
import meshio
mesh = meshio.read(filename)
# mesh.points, mesh.cells, ...
```
to read a mesh. To write, do
```python
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
```python
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 binary over ASCII VTK, for example).
#### Time series
The [XDMF format](http://www.xdmf.org/index.php/XDMF_Model_and_Format) supports time
series with a shared mesh. You can write times series data using meshio with
```python
writer = meshio.XdmfTimeSeriesWriter(filename)
writer.write_points_cells(points, cells)
for t in [0.0, 0.1, 0.21]:
writer.write_point_data({"phi": data}, t)
```
and read it with
```python
reader = meshio.XdmfTimeSeriesReader(filename)
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](https://pypi.org/project/meshio/), so simply type
```
pip install -U meshio
```
to install or upgrade.
### Testing
To run the meshio unit tests, check out this repository and type
```
pytest
```
### Distribution
To create a new release
1. bump the `__version__` number,
2. tag and upload to PyPi:
```
make publish
```
### License
meshio is published under the [MIT license](https://en.wikipedia.org/wiki/MIT_License).
[](https://circleci.com/gh/nschloe/meshio)
[](https://codecov.io/gh/nschloe/meshio)
[](https://github.com/ambv/black)
[](https://pypi.org/project/meshio)
[](https://tracker.debian.org/pkg/python-meshio)
[](https://doi.org/10.5281/zenodo.1173115)
[](https://github.com/nschloe/meshio)
<p align="center">
<img src="https://nschloe.github.io/meshio/meshio_logo.svg" width="20%">
</p>
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](http://abaqus.software.polimi.it/v6.14/index.html)
* [ANSYS msh](http://www.afs.enea.it/fluent/Public/Fluent-Doc/PDF/chp03.pdf)
* [DOLFIN XML](http://manpages.ubuntu.com/manpages/wily/man1/dolfin-convert.1.html)
* [Exodus](https://cubit.sandia.gov/public/13.2/help_manual/WebHelp/finite_element_model/exodus/block_specification.htm)
* [H5M](https://www.mcs.anl.gov/~fathom/moab-docs/h5mmain.html)
* [Kratos/MDPA](https://github.com/KratosMultiphysics/Kratos/wiki/Input-data)
* [Medit](https://people.sc.fsu.edu/~jburkardt/data/medit/medit.html)
* [MED/Salome](http://docs.salome-platform.org/latest/dev/MEDCoupling/med-file.html)
* [Gmsh](http://gmsh.info/doc/texinfo/gmsh.html#File-formats) (versions 2 and 4)
* [OFF](http://segeval.cs.princeton.edu/public/off_format.html)
* [PERMAS](http://www.intes.de)
* [STL](https://en.wikipedia.org/wiki/STL_(file_format))
* [SVG](https://www.w3.org/TR/SVG/) (2D only, output only)
* [VTK](https://www.vtk.org/wp-content/uploads/2015/04/file-formats.pdf)
* [VTU](https://www.vtk.org/Wiki/VTK_XML_Formats)
* [XDMF](http://www.xdmf.org/index.php/XDMF_Model_and_Format)
Simply call
```
meshio-convert input.msh output.vtu
```
with any of the supported formats.
In Python, simply call
```python
import meshio
mesh = meshio.read(filename)
# mesh.points, mesh.cells, ...
```
to read a mesh. To write, do
```python
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
```python
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 binary over ASCII VTK, for example).
#### Time series
The [XDMF format](http://www.xdmf.org/index.php/XDMF_Model_and_Format) supports time
series with a shared mesh. You can write times series data using meshio with
```python
writer = meshio.XdmfTimeSeriesWriter(filename)
writer.write_points_cells(points, cells)
for t in [0.0, 0.1, 0.21]:
writer.write_point_data({"phi": data}, t)
```
and read it with
```python
reader = meshio.XdmfTimeSeriesReader(filename)
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](https://pypi.org/project/meshio/), so simply type
```
pip install -U meshio
```
to install or upgrade.
### Testing
To run the meshio unit tests, check out this repository and type
```
pytest
```
### Distribution
To create a new release
1. bump the `__version__` number,
2. tag and upload to PyPi:
```
make publish
```
### License
meshio is published under the [MIT license](https://en.wikipedia.org/wiki/MIT_License).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
meshio-2.3.4.tar.gz
(56.9 kB
view details)
Built Distribution
File details
Details for the file meshio-2.3.4.tar.gz
.
File metadata
- Download URL: meshio-2.3.4.tar.gz
- Upload date:
- Size: 56.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4ea16a5aaa4579e229774ed940000fe77585122974821c6b009d0d9a974def7 |
|
MD5 | 2a7dd765df10191a658414ea1e8b9832 |
|
BLAKE2b-256 | 41dc46b30bd1e092a0120b87ed0770c6a4f2771e8dc32c237aa54a36ab4a3686 |
File details
Details for the file meshio-2.3.4-py2.py3-none-any.whl
.
File metadata
- Download URL: meshio-2.3.4-py2.py3-none-any.whl
- Upload date:
- Size: 82.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fb7a6f06d561b8c4fd40a4f5309382ef3dc651cf977a69db842d46a83deb905 |
|
MD5 | b172ab2def5bcf562679d2e57e07ec9f |
|
BLAKE2b-256 | 096b21adf5768f102d4ab75c76ec96a169e8903feec4278beaa3a15de751223b |