Batching required for LTS and ExaHyPE's limiter-based refinement
Limiting ADER-DG in ExaHyPE
In ExaHyPE, we do not consider adaptive refinement for the Finite Volumes (FV) solver. We thus only use FV on the finest level of the adaptive mesh if we employ a limiting ADER-DG solver. If a limiting ADER-DG solver detects a shock, i.e. a cell where we need to limit non-physical oscillations, we refine it down to the finest adaptive mesh level. And we further refine its neighbours down to the finest mesh level.
Local Time Stepping
TBC
Local Time Stepping plus limiting ADER-DG in ExaHyPE
It is possible that a cell is marked as troubled during the local time stepping. This will require potentially more refinement around the cell, or to refine the cell itself.
The newly refined cells might not have done any time stepping at all during the current LTS batch since their parents stem from a coarser level. They lag behind in time.
The question is what to do in those scenarios.
Batching
One idea is to consider the number of local time steps to run as a batch. We remember the solution before a batch starts. In case (limiter-based) refinement is triggered, we memorise the cells to refine, perform a rollback to the memorised solution. Afterwards, we refine the memorised cells and run the batch again.
It can happen multiple times that we have to rerun a batch. On the other hand, we ensure that our grid is always tracking a shock correctly.
Further techniques
On the expense of computational cost, we could refine the mesh generously (according to the restricted limiter status) This would reduce the number of batch reruns.