Coming back to FEniCS after a while, I forgot how to store mesh functions with meshio. Here’s what I tried, but the order of the points is messed up:

```
import numpy as np
import meshio
import meshzoo
from dolfin import FunctionSpace, Mesh, MeshEditor, Expression, project
points, cells = meshzoo.disk(6, 10)
editor = MeshEditor()
mesh = Mesh()
# topological and geometrical dimension 2
editor.open(mesh, "triangle", 2, 2, 1)
editor.init_vertices(len(points))
editor.init_cells(len(cells))
for k, point in enumerate(points):
editor.add_vertex(k, point[:2])
for k, cell in enumerate(cells.astype(np.uintp)):
editor.add_cell(k, cell)
editor.close()
V = FunctionSpace(mesh, "CG", 1)
f1 = Expression("x[0]", element=V.ufl_element())
e1 = project(f1, V).vector().get_local()
meshio.Mesh(
V.mesh().coordinates(),
{"triangle": V.mesh().cells()},
point_data={"e1": e1},
).write("out.vtk")
```

If there’s a better way of creating a mesh from points and cells, let me know, too!