AMR Scheduling

When running bamps with AMR, it is possible to write the applied refinements to a schedule file. This file can then later be read in to apply the exact same refinements to a different run, without needing to recompute the (potentially expensive) refinement indicator for all required variables. It also allows application of a consistent refinement schedule independent of (intra-grid) resolution, e.g. for convergence testing.

While the generated schedule file is independent of the resolution within each grid, the overall grid structure must be identical between runs. Using a different number of starting grids than in the original run will produce unexpected and wrong behaviour.

To create a schedule file, set the following parameters:

grid.amr.schedule.mode = save
grid.amr.schedule.file = <filename>

To use a previously created schedule file, set the following parameters:

grid.amr.schedule.mode = load
grid.amr.schedule.file = <filename>
grid.amr.indicator = schedule
grid.amr.indicator.variables = <u.xxx>
grid.amr.indicator.max = 1
grid.amr.indicator.min = -1

It is necessary to put at least one variable as an indicator variable, as the scheduling indicator is not called otherwise. Setting more than one variable will result in unnecessarily calling the indicator function multiple times per grid, so you should set exactly one variable that exists in your project(s). It does not matter which.

The parameters grid.amr.hlmax and grid.amr.every automatically get set according the schedule file, overriding values set in the parfile.