What would be the best way to represent the rest shape of a shell (2D manifold embedded in 3D) in the case that the mesh has no natural 2D atlas? The simplest example is a sphere. I would like to give DMPlex the ambient 3D coordinates so as to avoid singularities in the gradient fields.
If I was only dealing with first order elements, presumably the correct approach would be to set the topological dimension of the DMPlex to 2, give it a 3D coordinate section, and fix the few places required to carry through gradient information correctly. I haven't done a thorough search of missing places yet, but at least DMPlexComputeLineGeometry_Internal doesn't handle 1D elements in 3D, which is required at the boundary of 2D shells in 3D. Unfortunately, something more is required for higher order accuracy, since naively the coordinate section itself would have to be higher order, and this would require lots of changes (the equivalent of DMPlexComputeCellGeometry would be called once per quadrature point instead of once per element). Is there a better clean way to support FE PDEs on spheres or other nontrivial surfaces in 3D? Thanks, Geoffrey
