aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschnetter <>2004-01-30 09:40:00 +0000
committerschnetter <>2004-01-30 09:40:00 +0000
commitc49c649924666ffe5a11ed9b0a2fd03b3a940d78 (patch)
treeaf83d82c30201621c9ce68aaa03916bb116e7842
parent83397adaa1a0a7e255c5878815f75e65ebaa0d16 (diff)
Call global mode routines at each time and for the coarsest possible
Call global mode routines at each time and for the coarsest possible grid there, instead of (wrongly) at each time when the level 0 grid is active there. darcs-hash:20040130094052-07bb3-552e064e7f69fb827479e404c739f62cc7570887.gz
-rw-r--r--Carpet/Carpet/src/Evolve.cc16
1 files changed, 13 insertions, 3 deletions
diff --git a/Carpet/Carpet/src/Evolve.cc b/Carpet/Carpet/src/Evolve.cc
index b9a9d4bcf..4d06a7c17 100644
--- a/Carpet/Carpet/src/Evolve.cc
+++ b/Carpet/Carpet/src/Evolve.cc
@@ -31,7 +31,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Evolve.cc,v 1.31 2004/01/25 14:57:27 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Evolve.cc,v 1.32 2004/01/30 10:40:52 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Evolve_cc);
}
@@ -145,7 +145,12 @@ namespace Carpet {
enter_level_mode (cgh, rl);
const int do_every = mglevelfact * (maxreflevelfact/reflevelfact);
if ((cgh->cctk_iteration-1) % do_every == 0) {
- do_global_mode = reflevel==0;
+ const int coarsest_reflevel = rl;
+ while (coarsest_reflevel > 0
+ && (cgh->cctk_iteration-1) % (mglevelfact * (maxreflevelfact / ipow(reffact, coarsest_reflevel-1))) == 0) {
+ --coarsest_reflevel;
+ }
+ do_global_mode = reflevel==coarsest_reflevel;
do_meta_mode = do_global_mode && mglevel==mglevels-1;
// Advance times
@@ -187,7 +192,12 @@ namespace Carpet {
enter_level_mode (cgh, rl);
const int do_every = mglevelfact * (maxreflevelfact/reflevelfact);
if (cgh->cctk_iteration % do_every == 0) {
- do_global_mode = reflevel==0;
+ const int coarsest_reflevel = rl;
+ while (coarsest_reflevel > 0
+ && (cgh->cctk_iteration-1) % (mglevelfact * (maxreflevelfact / ipow(reffact, coarsest_reflevel-1))) == 0) {
+ --coarsest_reflevel;
+ }
+ do_global_mode = reflevel==coarsest_reflevel;
do_meta_mode = do_global_mode && mglevel==mglevels-1;
Checkpoint ("Evolution II at iteration %d time %g%s%s",