I see. I tested a few other tags, I guess the OP gets his answer.
However, I see in the gist the line print(np.unique(nh.vector[:]))
where nh comes from dfx.fem.Function(V)
rather than n = ufl.FacetNormal(V.mesh)
.
I do not understand why n = ufl.FacetNormal(V.mesh)
and n.vector[:]
would not give what the OP is after.
If it’s a mesh question, why is there a need to invoke dolfinx and a FE space rather than just dealing with ufl/gmsh for example?