Skip to main content

I/O for various mesh formats

Project description

# meshio

[![CircleCI](https://img.shields.io/circleci/project/github/nschloe/meshio/master.svg)](https://circleci.com/gh/nschloe/meshio)
[![codecov](https://img.shields.io/codecov/c/github/nschloe/meshio.svg)](https://codecov.io/gh/nschloe/meshio)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
[![PyPi Version](https://img.shields.io/pypi/v/meshio.svg)](https://pypi.org/project/meshio)
[![Debian CI](https://badges.debian.net/badges/debian/testing/python3-meshio/version.svg)](https://tracker.debian.org/pkg/python-meshio)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1173115.svg)](https://doi.org/10.5281/zenodo.1173115)
[![GitHub stars](https://img.shields.io/github/stars/nschloe/meshio.svg?logo=github&label=Stars&logoColor=white)](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

This version

2.3.4

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)

Uploaded Source

Built Distribution

meshio-2.3.4-py2.py3-none-any.whl (82.2 kB view details)

Uploaded Python 2 Python 3

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

Hashes for meshio-2.3.4.tar.gz
Algorithm Hash digest
SHA256 e4ea16a5aaa4579e229774ed940000fe77585122974821c6b009d0d9a974def7
MD5 2a7dd765df10191a658414ea1e8b9832
BLAKE2b-256 41dc46b30bd1e092a0120b87ed0770c6a4f2771e8dc32c237aa54a36ab4a3686

See more details on using hashes here.

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

Hashes for meshio-2.3.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2fb7a6f06d561b8c4fd40a4f5309382ef3dc651cf977a69db842d46a83deb905
MD5 b172ab2def5bcf562679d2e57e07ec9f
BLAKE2b-256 096b21adf5768f102d4ab75c76ec96a169e8903feec4278beaa3a15de751223b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page