aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2013-04-04 23:41:31 -0400
committerErik Schnetter <schnetter@gmail.com>2013-04-04 23:41:31 -0400
commit40ac0f91b0fbe6d13281e4dba16c6065c531f9cd (patch)
tree15324d10d89342edff52a67067152d09542fa9f5 /Carpet/Carpet
parent0d879f0e85d99a1970bf3fd5468bffd4c3359770 (diff)
Carpet: Take tapering into account during postrestrict
Diffstat (limited to 'Carpet/Carpet')
-rw-r--r--Carpet/Carpet/src/Evolve.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/Carpet/Carpet/src/Evolve.cc b/Carpet/Carpet/src/Evolve.cc
index bf90787e6..37eaecdcc 100644
--- a/Carpet/Carpet/src/Evolve.cc
+++ b/Carpet/Carpet/src/Evolve.cc
@@ -486,6 +486,8 @@ namespace Carpet {
void
CallRestrict (cGH * const cctkGH)
{
+ DECLARE_CCTK_PARAMETERS;
+
char const * const where = "Evolve::CallRestrict";
static Timer timer ("CallRestrict");
timer.start();
@@ -549,11 +551,22 @@ namespace Carpet {
have_done_late_global_mode |= do_late_global_mode;
have_done_anything = true;
+ if (use_tapered_grids and reflevel > 0) {
+ int const parent_do_every =
+ ipow(mgfact, mglevel) *
+ (maxtimereflevelfact / timereffacts.AT(reflevel-1));
+ bool const parent_is_active =
+ (cctkGH->cctk_iteration-1) % parent_do_every == 0;
+ do_taper = not parent_is_active;
+ }
+
Waypoint ("Evolution/PostRestrict at iteration %d time %g",
cctkGH->cctk_iteration, (double)cctkGH->cctk_time);
ScheduleTraverse (where, "CCTK_POSTRESTRICT", cctkGH);
+ do_taper = false;
+
EndTimingLevel (cctkGH);
} LEAVE_LEVEL_MODE;
} LEAVE_GLOBAL_MODE;
@@ -574,7 +587,7 @@ namespace Carpet {
void
- CallAnalysis (cGH * const cctkGH)
+ CallAnalysis (cGH * const cctkGH)
{
DECLARE_CCTK_PARAMETERS;