Index: arrangements/CactusNumerical/MoL/schedule.ccl =================================================================== --- arrangements/CactusNumerical/MoL/schedule.ccl (revision 147) +++ arrangements/CactusNumerical/MoL/schedule.ccl (working copy) @@ -689,9 +689,9 @@ { } "Calculate pseudo-evolved quantities" -schedule GROUP MoL_PseudoEvolution AT Post_Recover_Variables AFTER MoL_PostStep -{ -} "Calculate pseudo-evolved quantities" +#schedule GROUP MoL_PseudoEvolution AT Post_Recover_Variables AFTER MoL_PostStep +#{ +#} "Calculate pseudo-evolved quantities" ############################################################ ### Additional boundary condition bins as requested by ### Index: arrangements/CactusUtils/NaNChecker/schedule.ccl =================================================================== --- arrangements/CactusUtils/NaNChecker/schedule.ccl (revision 96) +++ arrangements/CactusUtils/NaNChecker/schedule.ccl (working copy) @@ -5,7 +5,7 @@ { STORAGE: NaNmask NaNsFound - schedule NaNChecker_ResetCounter at INITIAL + schedule NaNChecker_ResetCounter at BASEGRID { LANG: C OPTIONS: global @@ -17,15 +17,27 @@ OPTIONS: global } "Reset the NaNChecker::NaNsFound counter" - schedule NaNChecker_NaNCheck at POSTSTEP + schedule NaNChecker_NaNCheck as zzz_NaNChecker_NaNCheck at POSTSTEP { LANG: C OPTIONS: local } "Check for NaNs and count them in NaNChecker::NaNsFound" - schedule NaNChecker_TakeAction at POSTSTEP after NaNChecker_NaNCheck + schedule NaNChecker_TakeAction at POSTSTEP after zzz_NaNChecker_NaNCheck { LANG: C OPTIONS: global loop-level } "Output NaNChecker::NaNmask and take action according to NaNChecker::action_if_found" + + schedule NaNChecker_NaNCheck as zzz_NaNChecker_NaNCheck at POST_RECOVER_VARIABLES + { + LANG: C + OPTIONS: local + } "Check for NaNs and count them in NaNChecker::NaNsFound" + + schedule NaNChecker_TakeAction at POST_RECOVER_VARIABLES after zzz_NaNChecker_NaNCheck + { + LANG: C + OPTIONS: global loop-level + } "Output NaNChecker::NaNmask and take action according to NaNChecker::action_if_found" } Index: arrangements/EinsteinEvolve/GRHydro/schedule.ccl =================================================================== --- arrangements/EinsteinEvolve/GRHydro/schedule.ccl (revision 251) +++ arrangements/EinsteinEvolve/GRHydro/schedule.ccl (working copy) @@ -983,9 +983,9 @@ } "Reset the atmosphere" } -schedule group HydroBase_Boundaries IN MoL_Evolution AFTER MoL_Step -{ -} "HydroBase Boundary conditions group" +#schedule group HydroBase_Boundaries IN MoL_Evolution AFTER MoL_Step +#{ +#} "HydroBase Boundary conditions group" } # end of if (CCTK_EQUALS(hydrobase::evolution_method, "GRHydro")) @@ -1064,11 +1064,11 @@ { } "Calculate the stress-energy tensor" -schedule GROUP SetTmunu AT POST_RECOVER_VARIABLES -{ -} "Calculate the stress-energy tensor" +#schedule GROUP SetTmunu AT POST_RECOVER_VARIABLES +#{ +#} "Calculate the stress-energy tensor" -schedule GROUP SetTmunu IN MoL_Evolution AFTER HydroBase_Boundaries -{ -} "Calculate the stress-energy tensor" +#schedule GROUP SetTmunu IN MoL_Evolution AFTER HydroBase_Boundaries +#{ +#} "Calculate the stress-energy tensor" Index: arrangements/EinsteinBase/TmunuBase/schedule.ccl =================================================================== --- arrangements/EinsteinBase/TmunuBase/schedule.ccl (revision 9) +++ arrangements/EinsteinBase/TmunuBase/schedule.ccl (working copy) @@ -61,26 +61,32 @@ # if (stress_energy_at_RHS) # { - # SCHEDULE GROUP SetTmunu IN MoL_PostStep AFTER Whisky_PostStep + # SCHEDULE GROUP SetTmunu IN MoL_PostStep AFTER (ADMBase_SetADMVars Whisky_PostStep) # { # } "Calculate the stress-energy tensor" # } else { - # SCHEDULE GROUP SetTmunu AT evol AFTER MoL_Evolution + # SCHEDULE GROUP SetTmunu AT evol AFTER (MoL_Evolution ADMBase_SetADMVars) # { # } "Calculate the stress-energy tensor" # } if (stress_energy_at_RHS) { - SCHEDULE GROUP SetTmunu IN MoL_PostStep + SCHEDULE GROUP SetTmunu IN MoL_PostStep AFTER ADMBase_SetADMVars { } "Group for calculating the stress-energy tensor" } - SCHEDULE GROUP SetTmunu AT evol AFTER MoL_Evolution - { - } "Group for calculating the stress-energy tensor" + # TODO: Instead of the following two: + # SCHEDULE GROUP SetTmunu IN MoL_PseudoEvolution AFTER ADMBase_SetADMVars + # SCHEDULE GROUP SetTmunu AT evol AFTER (MoL_Evolution ADMBase_SetADMVars) + # { + # } "Group for calculating the stress-energy tensor" + # TODO: Calculate T_munu after recovery + + + # This is how T_munu is calculated. # First it is set via the CalcTmunu.inc mechanism, # then other thorns can add to that via the AddToTmunu mechanism. ================================================================ diff -r 3e72bcdb58d3 Carpet/Carpet/src/Evolve.cc --- a/./repos/carpet/Carpet/Carpet/src/Evolve.cc Sun Jul 10 12:19:01 2011 -0400 +++ b/./repos/carpet/Carpet/Carpet/src/Evolve.cc Tue Jul 19 21:48:39 2011 -0400 @@ -449,41 +449,22 @@ for (int ml=mglevels-1; ml>=0; --ml) { - bool have_done_global_mode = false; - bool have_done_early_global_mode = false; - bool have_done_late_global_mode = false; - bool have_done_anything = false; + bool did_restrict = false; for (int rl=reflevels-2; rl>=0; --rl) { - int const do_every - = ipow(mgfact, ml) * (maxtimereflevelfact / timereffacts.AT(rl)); + int const do_every = + ipow(mgfact, ml) * (maxtimereflevelfact / timereffacts.AT(rl)); if (cctkGH->cctk_iteration % do_every == 0) { ENTER_GLOBAL_MODE (cctkGH, ml) { ENTER_LEVEL_MODE (cctkGH, rl) { BeginTimingLevel (cctkGH); - do_early_global_mode = reflevel==reflevels-2; - do_late_global_mode = not have_done_late_global_mode; - do_early_meta_mode = do_early_global_mode and mglevel==mglevels-1; - do_late_meta_mode = do_late_global_mode and mglevel==0; - do_global_mode = do_late_global_mode; - do_meta_mode = do_global_mode and do_late_meta_mode; - assert (not (have_done_global_mode and do_global_mode)); - assert (not (have_done_early_global_mode and - do_early_global_mode)); - assert (not (have_done_late_global_mode and - do_late_global_mode)); - have_done_global_mode |= do_global_mode; - have_done_early_global_mode |= do_early_global_mode; - have_done_late_global_mode |= do_late_global_mode; - have_done_anything = true; - Waypoint ("Evolution/Restrict at iteration %d time %g", cctkGH->cctk_iteration, (double)cctkGH->cctk_time); Restrict (cctkGH); - ScheduleTraverse (where, "CCTK_POSTRESTRICT", cctkGH); + did_restrict = true; EndTimingLevel (cctkGH); } LEAVE_LEVEL_MODE; @@ -491,9 +472,56 @@ } // if do_every } // for rl - if (have_done_anything) assert (have_done_global_mode); - if (have_done_anything) assert (have_done_early_global_mode); - if (have_done_anything) assert (have_done_late_global_mode); + if (did_restrict) { + + bool have_done_global_mode = false; + bool have_done_early_global_mode = false; + bool have_done_late_global_mode = false; + bool have_done_anything = false; + + for (int rl=0; rlcctk_iteration % do_every == 0) { + ENTER_GLOBAL_MODE (cctkGH, ml) { + ENTER_LEVEL_MODE (cctkGH, rl) { + BeginTimingLevel (cctkGH); + + // do_early_global_mode = reflevel==reflevels-2; + // do_late_global_mode = not have_done_late_global_mode; + do_early_global_mode = not have_done_early_global_mode; + do_late_global_mode = reflevel==reflevels-1; + do_early_meta_mode = + do_early_global_mode and mglevel==mglevels-1; + do_late_meta_mode = do_late_global_mode and mglevel==0; + do_global_mode = do_late_global_mode; + do_meta_mode = do_global_mode and do_late_meta_mode; + assert (not (have_done_global_mode and do_global_mode)); + assert (not (have_done_early_global_mode and + do_early_global_mode)); + assert (not (have_done_late_global_mode and + do_late_global_mode)); + have_done_global_mode |= do_global_mode; + have_done_early_global_mode |= do_early_global_mode; + have_done_late_global_mode |= do_late_global_mode; + have_done_anything = true; + + Waypoint ("Evolution/PostRestrict at iteration %d time %g", + cctkGH->cctk_iteration, (double)cctkGH->cctk_time); + + ScheduleTraverse (where, "CCTK_POSTRESTRICT", cctkGH); + + EndTimingLevel (cctkGH); + } LEAVE_LEVEL_MODE; + } LEAVE_GLOBAL_MODE; + } // if do_every + } // for rl + + if (have_done_anything) assert (have_done_global_mode); + if (have_done_anything) assert (have_done_early_global_mode); + if (have_done_anything) assert (have_done_late_global_mode); + + } // if did_restrict } // for ml diff -r 3e72bcdb58d3 Carpet/Carpet/src/Initialise.cc --- a/./repos/carpet/Carpet/Carpet/src/Initialise.cc Sun Jul 10 12:19:01 2011 -0400 +++ b/./repos/carpet/Carpet/Carpet/src/Initialise.cc Tue Jul 19 21:48:39 2011 -0400 @@ -282,6 +282,7 @@ do_global_mode = do_early_global_mode; // on first iteration, coarsest grid do_meta_mode = do_early_meta_mode; // on first iteration, coarsest grid +#if 0 BEGIN_TIMELEVEL_LOOP(cctkGH) { Waypoint ("Recovering II at iteration %d time %g timelevel %d%s%s", @@ -295,6 +296,16 @@ ScheduleTraverse (where, "CCTK_POST_RECOVER_VARIABLES", cctkGH); } END_TIMELEVEL_LOOP; +#else + Waypoint ("Recovering II at iteration %d time %g%s%s", + cctkGH->cctk_iteration, + (double)cctkGH->cctk_time, + (do_global_mode ? " (global)" : ""), + (do_meta_mode ? " (meta)" : "")); + + // Post recover variables + ScheduleTraverse (where, "CCTK_POST_RECOVER_VARIABLES", cctkGH); +#endif // Checking PoisonCheck (cctkGH, currenttime); ================================================================ diff --git a/ML_ADMConstraints/schedule.ccl b/ML_ADMConstraints/schedule.ccl index 74b3d66..64e2bc5 100644 --- a/./repos/McLachlan/ML_ADMConstraints/schedule.ccl +++ b/./repos/McLachlan/ML_ADMConstraints/schedule.ccl @@ -23,7 +23,7 @@ schedule ML_ADMConstraints_RegisterSymmetries in SymmetryRegister OPTIONS: meta } "register symmetries" -schedule group ML_ADMConstraints_group in MoL_PseudoEvolution +schedule group ML_ADMConstraints_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_ADMConstraints" @@ -51,21 +51,21 @@ schedule group ML_ADMConstraints_bc_group in ML_ADMConstraints_group after ML_AD # no language specified } "ML_ADMConstraints" -schedule group ML_ADMConstraints_bc_group at CCTK_POSTRESTRICT +schedule group ML_ADMConstraints_bc_group at CCTK_POSTRESTRICT after MoL_PostStep { # no language specified } "ML_ADMConstraints" -schedule group ML_ADMConstraints_bc_group at CCTK_POSTRESTRICTINITIAL +schedule group ML_ADMConstraints_bc_group at CCTK_POSTRESTRICTINITIAL after MoL_PostStep { # no language specified } "ML_ADMConstraints" -schedule ML_ADMConstraints_SelectBoundConds in MoL_PseudoEvolution -{ - LANG: C - OPTIONS: level -} "select boundary conditions" +#schedule ML_ADMConstraints_SelectBoundConds in MoL_PseudoEvolution +#{ +# LANG: C +# OPTIONS: level +#} "select boundary conditions" schedule ML_ADMConstraints_CheckBoundaries at BASEGRID { @@ -73,7 +73,7 @@ schedule ML_ADMConstraints_CheckBoundaries at BASEGRID OPTIONS: meta } "check boundaries treatment" -schedule group ApplyBCs as ML_ADMConstraints_ApplyBCs in MoL_PseudoEvolution after ML_ADMConstraints_SelectBoundConds -{ - # no language specified -} "Apply boundary conditions controlled by thorn Boundary" +#schedule group ApplyBCs as ML_ADMConstraints_ApplyBCs in MoL_PseudoEvolution after ML_ADMConstraints_SelectBoundConds +#{ +# # no language specified +#} "Apply boundary conditions controlled by thorn Boundary" diff --git a/ML_ADMQuantities/schedule.ccl b/ML_ADMQuantities/schedule.ccl index 76e5a43..e8b3e51 100644 --- a/./repos/McLachlan/ML_ADMQuantities/schedule.ccl +++ b/./repos/McLachlan/ML_ADMQuantities/schedule.ccl @@ -23,7 +23,7 @@ schedule ML_ADMQuantities_RegisterSymmetries in SymmetryRegister OPTIONS: meta } "register symmetries" -schedule group ML_ADMQuantities_group in MoL_PseudoEvolution +schedule group ML_ADMQuantities_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_ADMQuantities" @@ -51,12 +51,12 @@ schedule group ML_ADMQuantities_bc_group in ML_ADMQuantities_group after ML_ADMQ # no language specified } "ML_ADMQuantities" -schedule group ML_ADMQuantities_bc_group at CCTK_POSTRESTRICT +schedule group ML_ADMQuantities_bc_group at CCTK_POSTRESTRICT after MoL_PostStep { # no language specified } "ML_ADMQuantities" -schedule group ML_ADMQuantities_bc_group at CCTK_POSTRESTRICTINITIAL +schedule group ML_ADMQuantities_bc_group at CCTK_POSTRESTRICTINITIAL after MoL_PostStep { # no language specified } "ML_ADMQuantities" diff --git a/ML_BSSN/schedule.ccl b/ML_BSSN/schedule.ccl index 9477f4a..89eec76 100644 --- a/./repos/McLachlan/ML_BSSN/schedule.ccl +++ b/./repos/McLachlan/ML_BSSN/schedule.ccl @@ -388,7 +388,7 @@ if (CCTK_EQUALS(dt_lapse_shift_method, "noLapseShiftAdvection")) } "ML_BSSN_convertToADMBaseFakeDtLapseShift" } -schedule group ML_BSSN_constraints1_group in MoL_PseudoEvolution +schedule group ML_BSSN_constraints1_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_BSSN_constraints1" @@ -415,17 +415,17 @@ schedule group ML_BSSN_constraints1_bc_group in ML_BSSN_constraints1_group after # no language specified } "ML_BSSN_constraints1" -schedule group ML_BSSN_constraints1_bc_group at CCTK_POSTRESTRICT +schedule group ML_BSSN_constraints1_bc_group at CCTK_POSTRESTRICT after MoL_PostStep { # no language specified } "ML_BSSN_constraints1" -schedule group ML_BSSN_constraints1_bc_group at CCTK_POSTRESTRICTINITIAL +schedule group ML_BSSN_constraints1_bc_group at CCTK_POSTRESTRICTINITIAL after MoL_PostStep { # no language specified } "ML_BSSN_constraints1" -schedule group ML_BSSN_constraints2_group in MoL_PseudoEvolution +schedule group ML_BSSN_constraints2_group in MoL_PseudoEvolution after MoL_PostStep { # no language specified } "ML_BSSN_constraints2" @@ -455,12 +455,12 @@ schedule group ML_BSSN_constraints2_bc_group in ML_BSSN_constraints2_group after # no language specified } "ML_BSSN_constraints2" -schedule group ML_BSSN_constraints2_bc_group at CCTK_POSTRESTRICT +schedule group ML_BSSN_constraints2_bc_group at CCTK_POSTRESTRICT after MoL_PostStep { # no language specified } "ML_BSSN_constraints2" -schedule group ML_BSSN_constraints2_bc_group at CCTK_POSTRESTRICTINITIAL +schedule group ML_BSSN_constraints2_bc_group at CCTK_POSTRESTRICTINITIAL after MoL_PostStep { # no language specified } "ML_BSSN_constraints2" diff --git a/ML_BSSN_Helper/src/SetGroupTags.c b/ML_BSSN_Helper/src/SetGroupTags.c index 4b24e56..7ae24bb 100644 --- a/./repos/McLachlan/ML_BSSN_Helper/src/SetGroupTags.c +++ b/./repos/McLachlan/ML_BSSN_Helper/src/SetGroupTags.c @@ -15,29 +15,30 @@ ML_BSSN_SetGroupTags (void) { DECLARE_CCTK_PARAMETERS; - set_group_tags (0, 0, 1, "ADMBase::metric"); - set_group_tags (0, 0, 1, "ADMBase::curv"); - set_group_tags (0, 0, 1, "ADMBase::lapse"); - set_group_tags (0, 0, 1, "ADMBase::shift"); - set_group_tags (0, 0, 1, "ADMBase::dtlapse"); - set_group_tags (0, 0, 1, "ADMBase::dtshift"); + int const checkpoint = timelevels > 1; + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::metric"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::curv"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::lapse"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::shift"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::dtlapse"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::dtshift"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_cons_detg"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_cons_Gamma"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_cons_traceA"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_Ham"); - set_group_tags (0, 0, 0, "ML_BSSN::ML_mom"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_cons_detg"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_cons_Gamma"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_cons_traceA"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_Ham"); + set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_mom"); - int const checkpoint = rhs_timelevels > 1; - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_log_confacrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_metricrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_Gammarhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_trace_curvrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_curvrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_lapserhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_dtlapserhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_shiftrhs"); - set_group_tags (checkpoint, checkpoint, 0, "ML_BSSN::ML_dtshiftrhs"); + int const rhs_checkpoint = rhs_timelevels > 1; + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_log_confacrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_metricrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_Gammarhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_trace_curvrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_curvrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_lapserhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_dtlapserhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_shiftrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_BSSN::ML_dtshiftrhs"); return 0; }