You can write meshes using the meshio.Mesh object or the convenience function meshio.write_points_cells(). You can optionally specify the file_format to enforce specific encoding (e.g., ASCII vs binary).
Using the Mesh object:
import meshio
points = [[0.0, 0.0], [1.0, 0.0], [0.0, 1.0], [1.0, 1.0], [2.0, 0.0], [2.0, 1.0]]
cells = [
("triangle", [[0, 1, 2], [1, 3, 2]]),
("quad", [[1, 4, 5, 3]]),
]
mesh = meshio.Mesh(
points,
cells,
point_data={"T": [0.3, -1.2, 0.5, 0.7, 0.0, -3.0]},
cell_data={"a": [[0.1, 0.2], [0.4]]},
)
mesh.write("foo.vtk")
Using write_points_cells:
import meshio
meshio.write_points_cells("foo.vtk", points, cells)
import meshio
# two triangles and one quad
points = [
[0.0, 0.0],
[1.0, 0.0],
[0.0, 1.0],
[1.0, 1.0],
[2.0, 0.0],
[2.0, 1.0],
]
cells = [
("triangle", [[0, 1, 2], [1, 3, 2]]),
("quad", [[1, 4, 5, 3]]),
]
mesh = meshio.Mesh(
points,
cells,
# Optionally provide extra data on points, cells, etc.
point_data={"T": [0.3, -1.2, 0.5, 0.7, 0.0, -3.0]},
# Each item in cell data must match the cells array
cell_data={"a": [[0.1, 0.2], [0.4]]},
)
mesh.write(
"foo.vtk", # str, os.PathLike, or buffer/open file
# file_format="vtk", # optional if first argument is a path; inferred from extension
)
# Alternative with the same options
meshio.write_points_cells("foo.vtk", points, cells)