diff options
author | Erik Schnetter <schnetter@gmail.com> | 2012-08-30 10:27:41 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2012-08-30 10:27:41 -0400 |
commit | 555a1a6fcc6b067affbdd7d21a2335aa2bfa0436 (patch) | |
tree | 9d8950542bcc35f990087d16d294349a32e9422c /Carpet/Carpet/src/Initialise.cc | |
parent | 2e031448f4255c0b8599f32c15cb6226db87d824 (diff) |
Carpet: Check schedule reads/writes statements at run time
Diffstat (limited to 'Carpet/Carpet/src/Initialise.cc')
-rw-r--r-- | Carpet/Carpet/src/Initialise.cc | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/Carpet/Carpet/src/Initialise.cc b/Carpet/Carpet/src/Initialise.cc index 9a6c2150b..ec007a882 100644 --- a/Carpet/Carpet/src/Initialise.cc +++ b/Carpet/Carpet/src/Initialise.cc @@ -20,6 +20,8 @@ #include <TimerSet.hh> #include <TimerNode.hh> +#include "Requirements.hh" + namespace Carpet { @@ -192,7 +194,7 @@ namespace Carpet { ScheduleTraverse (where, "CCTK_PARAMCHECK", cctkGH); } END_MGLEVEL_LOOP; - Requirements::CheckRequirements (cctkGH); + // Requirements::CheckRequirements (cctkGH); CCTKi_FinaliseParamWarn(); @@ -919,6 +921,7 @@ namespace Carpet { assert (not did_remove_level or did_regrid); if (did_regrid) { + Requirements::Regrid(reflevels); bool did_any_recompose = false; BEGIN_META_MODE (cctkGH) { @@ -932,6 +935,12 @@ namespace Carpet { bool did_recompose = false; did_recompose = Recompose (cctkGH, rl, prolongate_initial_data); did_any_recompose = did_any_recompose or did_recompose; + Requirements::Recompose(rl, + not did_recompose ? + Requirements::valid::everywhere : + prolongate_initial_data ? + Requirements::valid::interior : + Requirements::valid::nowhere); // Carpet assumes that a regridding operation always changes "level N // and all finer levels" so we should call POSTREGRID on all finer levels @@ -984,6 +993,7 @@ namespace Carpet { if (have_done_anything) assert (have_done_late_global_mode); } END_META_MODE; + Requirements::RegridFree(); } // if did_regrid RegridFree (cctkGH, prolongate_initial_data); @@ -1040,11 +1050,17 @@ namespace Carpet { bool const did_regrid = Regrid (cctkGH, true, prolongate_initial_data); if (did_regrid) { + Requirements::Regrid(reflevels); for (int rl=0; rl<reflevels; ++rl) { if (not enable_no_storage) { Recompose (cctkGH, rl, prolongate_initial_data); + Requirements::Recompose(rl, + prolongate_initial_data ? + Requirements::valid::interior : + Requirements::valid::nowhere); } } // for rl + Requirements::RegridFree(); } // if did_regrid RegridFree (cctkGH, prolongate_initial_data); @@ -1107,6 +1123,7 @@ namespace Carpet { assert (not did_remove_level or did_regrid); if (did_regrid) { + Requirements::Regrid(reflevels); bool did_any_recompose = false; BEGIN_META_MODE (cctkGH) { @@ -1119,6 +1136,12 @@ namespace Carpet { bool did_recompose = Recompose (cctkGH, rl, prolongate_initial_data); did_any_recompose = did_any_recompose or did_recompose; + Requirements::Recompose(rl, + not did_recompose ? + Requirements::valid::everywhere : + prolongate_initial_data ? + Requirements::valid::interior : + Requirements::valid::nowhere); // Carpet assumes that a regridding operation always changes // "level N and all finer levels" so we should call @@ -1185,6 +1208,7 @@ namespace Carpet { if (have_done_anything) assert (have_done_late_global_mode); } END_META_MODE; + Requirements::RegridFree(); } // if did_regrid RegridFree (cctkGH, prolongate_initial_data); |