aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/modes.cc
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@aei.mpg.de>2005-03-03 10:19:00 +0000
committerErik Schnetter <schnetter@aei.mpg.de>2005-03-03 10:19:00 +0000
commitb49800852e22bb212d54c71a550d6a19daad4c7b (patch)
treebfed694885ff3c29cc4810b22e69a3ddc8e8aa71 /Carpet/Carpet/src/modes.cc
parent2a6fa8359b9bdcaa7e99423a548cac72fbb0aab4 (diff)
Carpet: Handle groups with all time levels active correctly
darcs-hash:20050303101914-891bb-4bd9006f6da972bb3a1d8d9a4a9127359bcf1a4d.gz
Diffstat (limited to 'Carpet/Carpet/src/modes.cc')
-rw-r--r--Carpet/Carpet/src/modes.cc36
1 files changed, 22 insertions, 14 deletions
diff --git a/Carpet/Carpet/src/modes.cc b/Carpet/Carpet/src/modes.cc
index 10237e2df..24bdfa377 100644
--- a/Carpet/Carpet/src/modes.cc
+++ b/Carpet/Carpet/src/modes.cc
@@ -127,15 +127,18 @@ namespace Carpet {
if (numvars>0) {
const int firstvar = CCTK_FirstVarIndexI (group);
assert (firstvar>=0);
- const int num_tl = CCTK_NumTimeLevelsFromVarI (firstvar);
+ const int max_tl = CCTK_MaxTimeLevelsGI (group);
+ assert (max_tl>=0);
+ const int active_tl = CCTK_ActiveTimeLevelsGI (cgh, group);
+ assert (active_tl>=0 and active_tl<=max_tl);
assert (arrdata.at(group).at(m).hh->is_local(rl,c));
for (int var=0; var<numvars; ++var) {
assert (firstvar+var<CCTK_NumVars());
- for (int tl=0; tl<num_tl; ++tl) {
- ggf * const ff = arrdata.at(group).at(m).data.at(var);
- if (ff) {
+ ggf * const ff = arrdata.at(group).at(m).data.at(var);
+ for (int tl=0; tl<max_tl; ++tl) {
+ if (ff and tl<active_tl) {
gdata * const data = (*ff) (tl, rl, c, ml);
assert (data);
cgh->data[firstvar+var][tl] = data->storage();
@@ -198,13 +201,14 @@ namespace Carpet {
if (numvars>0) {
const int firstvar = CCTK_FirstVarIndexI (group);
assert (firstvar>=0);
- const int num_tl = CCTK_NumTimeLevelsFromVarI (firstvar);
+ const int max_tl = CCTK_MaxTimeLevelsGI (group);
+ assert (max_tl>=0);
assert (group<(int)arrdata.size());
for (int var=0; var<numvars; ++var) {
assert (firstvar+var<CCTK_NumVars());
- for (int tl=0; tl<num_tl; ++tl) {
- cgh->data[firstvar+var][tl] = 0;
+ for (int tl=0; tl<max_tl; ++tl) {
+ cgh->data[firstvar+var][tl] = NULL;
}
}
}
@@ -406,16 +410,19 @@ namespace Carpet {
if (numvars>0) {
const int firstvar = CCTK_FirstVarIndexI (group);
assert (firstvar>=0);
- const int num_tl = CCTK_NumTimeLevelsFromVarI (firstvar);
+ const int max_tl = CCTK_MaxTimeLevelsGI (group);
+ assert (max_tl>=0);
+ const int active_tl = CCTK_ActiveTimeLevelsGI (cgh, group);
+ assert (active_tl>=0 and active_tl<=max_tl);
// assert (vhh.at(map)->is_local(reflevel,component));
assert (group<(int)arrdata.size());
for (int var=0; var<numvars; ++var) {
assert (firstvar+var<CCTK_NumVars());
- for (int tl=0; tl<num_tl; ++tl) {
- ggf * const ff = arrdata.at(group).at(map).data.at(var);
- if (ff) {
+ ggf * const ff = arrdata.at(group).at(map).data.at(var);
+ for (int tl=0; tl<max_tl; ++tl) {
+ if (ff and tl<active_tl) {
gdata * const data = (*ff) (tl, reflevel, component, mglevel);
assert (data);
cgh->data[firstvar+var][tl] = data->storage();
@@ -479,13 +486,14 @@ namespace Carpet {
if (numvars>0) {
const int firstvar = CCTK_FirstVarIndexI (group);
assert (firstvar>=0);
- const int num_tl = CCTK_NumTimeLevelsFromVarI (firstvar);
+ const int max_tl = CCTK_MaxTimeLevelsGI (group);
+ assert (max_tl>=0);
assert (group<(int)arrdata.size());
for (int var=0; var<numvars; ++var) {
assert (firstvar+var<CCTK_NumVars());
- for (int tl=0; tl<num_tl; ++tl) {
- cgh->data[firstvar+var][tl] = 0;
+ for (int tl=0; tl<max_tl; ++tl) {
+ cgh->data[firstvar+var][tl] = NULL;
}
}
}