#971: global-early, loop-local routines in PostRegrid cause access to elements outside of a vector capacity ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: eschnett Type: defect | Status: new Priority: major | Milestone: Component: Carpet | Version: Resolution: | Keywords: ---------------------+------------------------------------------------------
Comment (by eschnett):
Recomposing (modifying the grid structure) proceeds from coarse to fine levels. This has to happen in this order, since newly created regions depend on respective coarser grids, and may also depend on boundary data or ghost zones on these coarser grids. This means in particular that recomposing and calling postregrid has to occur in lock-step. Calling a global mode routine before the new grid structure has been set up seems thus inconsistent. global-early routines need to be disabled in postregrid.
We can still allow early-meta mode routines early in postregrid, as these do not have access to the grid hierarchy.
global-early loop-local is clearly impossible. Depending on the particular action, this either needs to be distributed over local mode routines, or needs to be turned into a global-late loop-local routine, and some other actions may also need to be deferred.