I am trying to implement a discontinuous Galerkin discretization using the PETSc DM features to handle most of the topology/geometry specific functions. However, I'm not really sure which direction to approach this from since DG is kind of a middle ground between finite volume and traditional continuous Galerkin finite element methods.
It appears to me that if I want to implement a nodal DG method, then it would be more practical to extend the PetscFE interface, but for a modal DG method perhaps the PetscFV interface is better? There are still a few questions that I don't know the answers to, though. Questions about implementing nodal DG: 1. Does PetscFE support sub/super parametric element types? If so, how do I express the internal node structure for a nodal DG method (say, for example located at the abscissa of a Gauss-Lobatto quadrature scheme)? 2. How would I go about making the dataset stored discontinuous between neighboring elements (specifically at shared nodes for a nodal DG method)? 3. Similar to 2, how would I handle boundary conditions? Specifically, I need a layer of data space of just the boundary nodes (not a complete "ghost" element), and these are the actual constrained points. Questions about implementing modal DG: A. What does specifying the quadrature object for a PetscFV object actually do? Is it purely a surface flux integration quadrature? How does the quadrature object handle simplex-type elements in 2D/3D? B. How would I go about modifying the limiters to take into account these multiple modes? -- Andrew Ho