Unify refinement selection for static and dynamic grid refinement
Currently, the static grid refinement's SetupBlockForest
takes a refinement selection function, where markers are set to specify which parts of the domain need further refinement. The dynamic grid refinement's BlockForest
, on the other hand, takes a minimum target level determination function, which directly specifies the desired level of refinement.
This means that switching from static to dynamic refinement requires implementing another function. It also means that simulations with dynamic refinement need to either implement both or only set up the root blocks as part of the static refinement and leave the actual work to the dynamic refinement. Static refinement should however not be dropped from Walberla as it may be sufficient for many simulations and has the advantage that the block forest setup can be performed independently of the simulation and saved to a file.
I therefore propose that an adapter be created that takes a minimum target level determination function and sets markers appropriately so it can be used with static refinement. Alternatively, SetupBlockForest
could also be modified to alternatively accept a minimum target level determination function directly instead of requiring a refinement selection function.