schedule hydrobase_InitExcisionmask global-early loop-local

Issue #958 closed
Roland Haas created an issue

Christian Ott found that right now the scheduling of EinsteinUtil/SetMask_SphericalSurface::SetMask_SphericalSurface and HydroBase::HydroBase_InitExcisionMask conflict in the Post_Recover_Variables and INITIAL since SetMask_SphericalSurface which needs to run after HydroBase_InitExcisionMask is scheduled GLOBAL which happens to be global-late in these bins. SetMask_SphericalSurface must be local since it must run after SphericalSurfaceHasBeenSet which is after SphericalSurface_Set which is GLOBAL.

The attached patch runs HydroBase_InitExcisionMask global-early loop-local instead. Pleas note that the patch will change the behaviour in PostRegrid slightly since HydroBase_InitExcisionMask (and not just SetMask_SphericalSurface which already does so) will run on all refinement levels, always, independent of the iteration counter and Carpet's do_every logic.

The current code prevents properly recovering from checkpoints.

Keyword: HydroBase

Comments (8)

  1. Roland Haas reporter
    • changed status to open
    • removed comment

    I'd like to apply the attached workaorund until #971 has been addressed (one way or the other). It prevents running loop-local routiens global early in postregrid and instead runs them global-late (which means they run after the local routines). To compensate it schedules extra local mode calls to the function in postregrid. Ok to apply (it avoid out-of-bound aborts or memory corruption)?

  2. Log in to comment