User: rhaas Date: 2012/06/17 10:55 AM
Modified: /trunk/ schedule.ccl
Log: schedule hydrobase_InitExcisionmask global-early loop-local
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.
Found and fixed by Christian Ott.
File Changes:
Directory: /trunk/ ==================
File [modified]: schedule.ccl Delta lines: +5 -0 =================================================================== --- trunk/schedule.ccl 2012-05-28 22:19:50 UTC (rev 54) +++ trunk/schedule.ccl 2012-06-17 15:55:48 UTC (rev 55) @@ -184,6 +184,11 @@ schedule HydroBase_InitExcisionMask in HydroBase_ExcisionMaskSetup { LANG: C + # GLOBAL is global-early in INITIAL and Post_Recover_Variables + # GLOBAL is global-late in PostRegrid and PostRegridInitial + # since we would always like to run before any possibly local routine + # modifying the mask, we run global-early + OPTIONS: global-early loop-local } "Initialize hydro excision mask to 'no excision everywhere'"
schedule GROUP HydroBase_ExcisionHasBeenSet at CCTK_PostStep