#755: Provide better support for implementing boundary conditions --------------------------+------------------------------------------------- Reporter: hinder | Owner: Type: enhancement | Status: new Priority: major | Milestone: Component: Cactus | Version: Resolution: | Keywords: --------------------------+-------------------------------------------------
Comment (by eschnett):
This macro loops over all physical boundaries. The blo/bhi parameters are the 6 boundary widths. What is missing is code to determine the boundary widths, and to distinguish between physical/symmetry/inter-process boundaries. (This information should be provided by CoordBase.)
We could augment this macro with flags specifying over which boundaries to loop. We could also augment the macro to loop in 26 steps instead of in 6 steps, and to provide normal information.
There are some ambiguities because a boundary can be an inter-process, a physical, and a symmetry boundary at the same time (if it is a corner). In this case the caller needs to specify what should happen, e.g. "loop over all outer boundaries but exclude all ghost zones"; this allows taking tangential derivatives. Or "... but include ghost zones"; this does not require synchronisation afterwards. Depending on whether symmetry points are skipped, one may have to schedule the boundary condition after the symmetry condition. And so on.