if (evolution_storage==1) { STORAGE:ADM_metric_prev,ADM_curv_prev COMMUNICATION: ADM_metric_prev } if (CCTK_Equals(evolution_system,"ADM")) { STORAGE: ADM_metric_prev,ADM_lapse_prev,ADM_curv_prev COMMUNICATION: ADM_metric_prev,ADM_lapse_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 the slicings in ADM" schedule ADM_PreLoop at CCTK_INITIAL after InitialEinstein { LANG: Fortran }"Setup for ADM" 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 if (minimal_communications==0) { COMMUNICATION:ADM_curv_stag } schedule ADM_StaggeredLeapfrog at CCTK_EVOL { LANG: Fortran }"Evolve using Staggered Leapfrog" } else if (CCTK_Equals(method,"leapfrog")) { # Evolve using Double Leapfrog STORAGE: ADM_sources,ADM_gauge schedule ADM_DoubleLeap at CCTK_EVOL { LANG: Fortran }"Evolve using Double Leapfrog" } else if (CCTK_Equals(method,"ICN")) { # Evolve using Iterative Crank-Nicholson STORAGE: ADM_sources,ADM_gauge schedule ADM_IterativeCN at CCTK_EVOL { LANG: Fortran }"Evolve using Iterative Crank-Nicholson" } }