[petsc-dev] 2D finite elements in 3D ambient space

Geoffrey Irving irving at naml.us
Mon Dec 2 18:49:52 CST 2013


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



More information about the petsc-dev mailing list