Just FYI, we have a (longish, perhaps by October) plan to change the way we handle orientation of meshes on the Firedrake side. Rather than globally orienting the mesh such that every physical element maps to the same reference element, each physical element will be mapped onto the reference element through some member of the relevant dihedral group. This will then entail changes to the way one grabs dofs in canonical reference element order.
We haven't worked out all the details yet. The rationale for this is (in the short term somewhat prosaically) wanting to support round-tripping checkpoint files from P to Q processes. Longer term it will enable mixed cell types and even just unstructured hex meshes (where the globally consistent orientation tricks we pull are not always possible).
Just FYI, we have a (longish, perhaps by October) plan to change the way we handle orientation of meshes on the Firedrake side. Rather than globally orienting the mesh such that every physical element maps to the same reference element, each physical element will be mapped onto the reference element through some member of the relevant dihedral group. This will then entail changes to the way one grabs dofs in canonical reference element order.
We haven't worked out all the details yet. The rationale for this is (in the short term somewhat prosaically) wanting to support round-tripping checkpoint files from P to Q processes. Longer term it will enable mixed cell types and even just unstructured hex meshes (where the globally consistent orientation tricks we pull are not always possible).