aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/Initialise.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Carpet/Carpet/src/Initialise.cc')
-rw-r--r--Carpet/Carpet/src/Initialise.cc26
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);