Horizontal detection of insufficiently refined mesh for LimitingADERDGSolver
Currently, we restrict the limiter status up to the next coarser parent in every iteration of the time stepping. We then evaluate on the coarser grids if the limiter status is such that we need to refine. This then triggers refinement requests which force the time stepping to stop.
Restricting to the next coarser parent implies non-global master-worker communication in MPI builds. This is not good.
To get rid of this master-worker communication during the time-stepping, I propose to extend the limiter status range by a few more than one OK statuses. If such an OK status is then propagating into a virtual child cell (Descendant), we know that the mesh is not sufficiently refined and we halt the time stepping.
Some philosophy: From the updates of the flags, we should further be able to predict in which direction a shock propagates. We can then select more carefully which cell to refine next.
I should further rethink my whole limiter-based mesh refinement. Maybe it is more advantageous, to do some bottom-up flagging for refinement. Instead of the current top-down approach where I use halo-refinement around the limited regions. With MPI switched on, I wonder however how well or badly this will interplay with the load balancing during the initial mesh refinement.