# Schedule definitions for thorn ADMMass # $Header$ STORAGE:ADMMass_LoopCounterG STORAGE:ADMMass_Masses ####################################################################################################### # The storage of the following grid functions at all times is necessary only because carpet would # allocate them only for the finest level, if the STORAGE specification were only in the ADMMass group, # as it was earlier. This will be changed back again, when carpet will be modified. ####################################################################################################### STORAGE:ADMMass_GFs[3] schedule ADMMass_InitLoopCounter AT INITIAL { LANG: C OPTIONS: global } "Initialise the loop counter for ADMMass" schedule ADMMass_SetLoopCounter AT POSTSTEP AFTER OutsideMask_UpdateMask { LANG: C OPTIONS: global } "Set the loop counter to the value of the parameter ADMMass:ADMMass_number" schedule ADMMass_Loop IN ADMMass BEFORE ADMMass_Local { LANG: C OPTIONS: global } "Decrement loop counter" ######################################################################################### # We must schedule the local routines to compute the integrals in global-loop-local # (as opposed to local) mode, in order to make sure that the scheduling condition # "AFTER", which describes the ADMMass group, is respected. This group may depend # on local routines (excision, emask) and must be run after all local routines. # If we had no such a dependence, we could have scheduled the integral computations # simply in local mode. ########################################################################################## schedule GROUP ADMMass AT POSTSTEP AFTER ADMMass_InitLoopCounter WHILE ADMMass::ADMMass_LoopCounter { STORAGE:ADMMass_GFs[3] STORAGE:ADMMass_box STORAGE:grid_spacing_product } "ADMMass loop" schedule ADMMass_Surface IN ADMMass { LANG: C OPTIONS: global loop-local } "Calculate the ADMmass using a surface integral: local routine" schedule ADMMass_Surface_Global IN ADMMass AFTER ADMMass_Surface { LANG: C OPTIONS: global } "Calculate the ADMmass using a surface integral: global routine" schedule ADMMass_Surface_Lapse IN ADMMass AFTER ADMMass_Surface_Global { LANG: C OPTIONS: global loop-local } "Calculate the ADMmass*lapse using a surface integral: local routine" schedule ADMMass_Surface_Lapse_Global IN ADMMass AFTER ADMMass_Surface_Lapse { LANG: C OPTIONS: global } "Calculate the ADMmass*lapse using a surface integral: global routine" schedule ADMMass_Volume IN ADMMass { LANG: C OPTIONS: global loop-local SYNC: ADMMass_GFs } "Calculate the ADMmass using a volume integral: local routine" schedule ADMMass_Volume_Global IN ADMMass AFTER ADMMass_Volume { LANG: C OPTIONS: global } "Calculate the ADMmass using a volume integral: global routine"