Skip to main content

I/O for various mesh formats

Project description


CircleCI codecov Code style: black PyPi Version Debian CI DOI GitHub stars PyPi downloads

There are various mesh formats available for representing unstructured meshes. meshio can read and write all of the following and smoothly converts between them:

Simply call

meshio-convert input.msh output.vtu

with any of the supported formats.

In Python, simply call

import meshio

mesh =  # 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]
    # 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 binary over ASCII VTK, for example).

Time series

The XDMF format supports time series with a shared mesh. You can write times series data using meshio with

writer = meshio.XdmfTimeSeriesWriter(filename)
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

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)


meshio is available from the Python Package Index, so simply type

pip install -U meshio

to install or upgrade.

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]


To run the meshio unit tests, check out this repository and type



meshio is published under the 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.

Files for meshio, version 2.3.9
Filename, size File type Python version Upload date Hashes
Filename, size meshio-2.3.9-py2.py3-none-any.whl (77.3 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size meshio-2.3.9.tar.gz (62.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page