if (CCTK_Equals(evolution_system,"Conf_ADM")) { STORAGE: conf_metric, conf_adm COMMUNICATION: conf_metric, conf_adm schedule Conf_ADMSetSym at CCTK_BASEGRID { LANG: Fortran } "Set Conf_ADM grid function symmetries" schedule Conf_ADMSetinit at CCTK_INITIAL after (InitialEinstein,Mahc_Init_Bound) { LANG: Fortran }"Setup the Conf_ADM variables from standard ADM variables" if (CCTK_Equals(conf_adm_method,"icn")) { # copy rotated _p variables to standard variables schedule Conf_ADM_cp_rot in GRHydro before (Conf_ADM_ICN_PreLoopA,Mahc_pred_calc_update) { LANG: Fortran } "copy rotated _p variables to standard variables" # Evolve using ICN schedule Conf_ADM_ICN_PreLoopA in GRHydro before Conf_ADM_ICN_PreLoopB after Mahc_pred_calc_update { LANG: Fortran } "Conformal ADM ICN Pre-Loop step A" schedule Conf_ADM_ICN_PreLoopB in GRHydro before (CONF_ICN_LOOP,Mahc_pred_apply_update) { LANG: Fortran } "Conformal ADM ICN Pre-Loop step B" schedule Conf_ADM_ICN_LoopA in CONF_ICN_LOOP before Conf_ADM_ICN_LoopB { LANG: Fortran } "Conformal ADM ICN Loop step A" schedule Conf_ADM_ICN_LoopB in CONF_ICN_LOOP { LANG: Fortran } "Conformal ADM ICN Loop step B" schedule GROUP CONF_ICN_LOOP while conf_adm::icn_iteration in GRHydro after Mahc_pred_primvarsolve before Mahc_pred_icn_apply_update { } "Iterative CN Group." # schedule Conf_ADM_ICN in GRHydro # { # LANG: Fortran # }"Evolve Conf_ADM using ICN" } if (! CCTK_IsImplementationActive("gen_rel_perfect_fluid")) { schedule GROUP GRHydro at CCTK_EVOL { } "GR + Hydro Meta Group (Mark is learning OO programming!)" } # maximal slicing stuff if( ch_forceKzero || (CCTK_Equals(ch_initlapse,"maximal"))) { STORAGE: conf_adm_maximal if(CCTK_Equals(ch_initlapse,"maximal")) { schedule Conf_ADM_Maxslice at CCTK_INITIAL after (IVP,Mahc_Init_Bound,InitialFlat) { LANG: Fortran } "set initial lapse to maximal slicing" } } }