I have a Gmsh mesh which has physical points/curves/surfaces.

I need to create indicator functions for these that are equal to 1 for nodes in the given physical entity and zero everywhere else.

The tutorial https://www.firedrakeproject.org/demos/linear_fluid_structure_interaction.py.html says that this can be done via

```
fn = Function(fnspace)
par_loop( 'for (int i=0; i < f.dofs; i++) f[i][0] = 1.0;', dx(subdomain_id), {'f': (fn, WRITE)} )
``

where subdomain_id is the numerical id of the physical entity in Gmsh. 

Unfortunately, this only works for physical surfaces and not points or lines. The error I get is 

```
  File "firedrake/dmplex.pyx", line 1022, in firedrake.dmplex.get_cell_markers
ValueError: Invalid subdomain_id 5 not in [3 4]
```

where 5 is a physical line, 1,2 are physical points, and 3,4 are physical surfaces.

Is there a different way I can create the necessary indicator function?