diff options
author | Erik Schnetter <schnetter@gmail.com> | 2012-10-23 14:34:32 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2012-10-23 14:34:32 -0400 |
commit | 1ab0d7d9c5f3a9044fa7e3b0c215ace4f7fcd74c (patch) | |
tree | cea7b52dab2316e6866a37e55bbb702559b94ebd | |
parent | 05f213b500cccb3aae0eb97ee775414ec077f713 (diff) |
Carpet: Correct errors in adaptive step size handling
-rw-r--r-- | Carpet/Carpet/src/Cycle.cc | 2 | ||||
-rw-r--r-- | Carpet/Carpet/src/Evolve.cc | 5 | ||||
-rw-r--r-- | Carpet/Carpet/src/modes.cc | 2 | ||||
-rw-r--r-- | Carpet/Carpet/src/modes.hh | 1 |
4 files changed, 8 insertions, 2 deletions
diff --git a/Carpet/Carpet/src/Cycle.cc b/Carpet/Carpet/src/Cycle.cc index 7e9bf0dd7..a3c254b55 100644 --- a/Carpet/Carpet/src/Cycle.cc +++ b/Carpet/Carpet/src/Cycle.cc @@ -130,6 +130,7 @@ namespace Carpet { assert (timelevel == 0); tt->retreat_time (mglevel, reflevel); + assert (not adaptive_stepsize); cctkGH->cctk_time = tt->get_time (mglevel, reflevel, timelevel); for (int group=0; group<CCTK_NumGroups(); ++group) { @@ -188,6 +189,7 @@ namespace Carpet { assert (timelevel == 0); tt->flip_timelevels (mglevel, reflevel); + assert (not adaptive_stepsize); cctkGH->cctk_time = tt->get_time (mglevel, reflevel, timelevel); cctkGH->cctk_delta_time *= -1; diff --git a/Carpet/Carpet/src/Evolve.cc b/Carpet/Carpet/src/Evolve.cc index b427920e3..936414d40 100644 --- a/Carpet/Carpet/src/Evolve.cc +++ b/Carpet/Carpet/src/Evolve.cc @@ -239,7 +239,8 @@ namespace Carpet { cctkGH->cctk_time = global_time; } else { // Take varying step sizes into account - cctkGH->cctk_time += delta_time; + cctkGH->cctk_time += cctkGH->cctk_delta_time; + delta_time = cctkGH->cctk_delta_time; global_time = cctkGH->cctk_time; } @@ -436,8 +437,8 @@ namespace Carpet { = (global_time - delta_time / maxtimereflevelfact + delta_time * mglevelfact / timereflevelfact); - tt->set_time (mglevel, reflevel, timelevel, cctkGH->cctk_time); } + tt->set_time (mglevel, reflevel, timelevel, cctkGH->cctk_time); Waypoint ("Evolution I at iteration %d time %g%s%s%s", cctkGH->cctk_iteration, (double)cctkGH->cctk_time, diff --git a/Carpet/Carpet/src/modes.cc b/Carpet/Carpet/src/modes.cc index 12a36d3b0..88404984b 100644 --- a/Carpet/Carpet/src/modes.cc +++ b/Carpet/Carpet/src/modes.cc @@ -97,6 +97,8 @@ namespace Carpet { // Set time delta if (not adaptive_stepsize) { cctkGH->cctk_delta_time = delta_time * mglevelfact; + } else { + delta_time = cctkGH->cctk_delta_time; } if (maps == 1) { // Set space delta diff --git a/Carpet/Carpet/src/modes.hh b/Carpet/Carpet/src/modes.hh index 488b7e79f..3d6c0c76b 100644 --- a/Carpet/Carpet/src/modes.hh +++ b/Carpet/Carpet/src/modes.hh @@ -254,6 +254,7 @@ namespace Carpet { assert (do_allow_past_timelevels); \ do_allow_past_timelevels = false; \ assert (timelevel == 0); \ + assert (not adaptive_stepsize); \ for (timelevel = timelevels - 1; timelevel >= 0; -- timelevel) { \ cctkGH->cctk_time = tt->get_time (mglevel, reflevel, timelevel); \ { |