schedule ADM_ParamCheck at CCTK_PARAMCHECK { LANG: C } "Check parameters" if (evolution_storage==1) { STORAGE:ADM_metric_prev,ADM_curv_prev } if (CCTK_Equals(evolution_system,"ADM")) { STORAGE: ADM_metric_prev,ADM_lapse_prev,ADM_curv_prev schedule ADMSetSym at CCTK_BASEGRID { LANG: Fortran } "Set grid function symmetries" if (store_initial_lapse == 1) { STORAGE:ADM_initlapse } schedule ADMRegisterSlicing at CCTK_STARTUP { LANG: C } "Register slicings" if (store_initial_lapse) { schedule ADM_alp0_init at CCTK_POSTINITIAL { LANG: Fortran }"Save the lapse function at the initial timestep" } if (CCTK_Equals(method,"stagleap")) { # Evolve using Staggered Leapfrog STORAGE: ADM_curv_stag,ADM_sources,ADM_extrap,ADM_gauge # ADM_Setup evaluates current slicing schedule ADM_Setup at CCTK_EVOL before ADM_StaggeredLeapfrog1 { LANG: Fortran } "Setup coefficients and internal slicing flags" # Evolution routine1 is scheduled before everything which # declares itself to be an external slicing (like maximal) schedule ADM_StaggeredLeapfrog1 at CCTK_EVOL before ExternalLapse { LANG: Fortran } "Evolve using Staggered Leapfrog (step 1)" # Evolution routine1 is scheduled after external slicing schedule ADM_StaggeredLeapfrog2 at CCTK_EVOL after ADM_StaggeredLeapfrog1 after ExternalLapse { LANG: Fortran } "Evolve using Staggered Leapfrog (step 2)" } else if (CCTK_Equals(method,"leapfrog")) { # Evolve using Double Leapfrog STORAGE: ADM_sources,ADM_gauge schedule ADM_DoubleLeap at CCTK_EVOL before ExternalLapse { LANG: Fortran }"Evolve using Double Leapfrog" # Evolution routines are scheduled before everything which # declares itself to be an external slicing (like maximal) schedule ADM_Setup at CCTK_EVOL before ADM_DoubleLeap { LANG: Fortran } "Flagging if slicing is done exteranlly" } else if (CCTK_Equals(method,"icn")) { # Evolve using Iterative Crank-Nicholson STORAGE: ADM_sources,ADM_gauge schedule ADM_ICN_init at CCTK_EVOL before ICN_LOOP { LANG: Fortran } "Initialise ICN" schedule ADM_IterativeCN in ICN_LOOP before ExternalLapse { LANG: Fortran }"Evolve using Iterative Crank-Nicholson" schedule ADM_Setup at CCTK_EVOL before ICN_LOOP { LANG: Fortran } "Slicing is done exteranlly" schedule GROUP ICN_LOOP while adm::icn_iteration AT EVOL { } "Iterative Crank-Nicholson Loop" } }