aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/Restrict.cc
diff options
context:
space:
mode:
authorschnetter <>2004-02-03 13:34:00 +0000
committerschnetter <>2004-02-03 13:34:00 +0000
commit575ab717e01613692cc35898b8aa44e3ff75297a (patch)
tree69b9172e65f2817f508cd580d87e41b42689fd49 /Carpet/Carpet/src/Restrict.cc
parent44c2ac4da91e6a90fd84629dd66262a839f1dae5 (diff)
Do call boundary prolongation independent of the prolongation
Do call boundary prolongation independent of the prolongation operator, because CarpetLib now catches the case "operator == none". darcs-hash:20040203133434-07bb3-7f2db8305c5fd443cbc3b1cdf47a62d37a0cdefa.gz
Diffstat (limited to 'Carpet/Carpet/src/Restrict.cc')
-rw-r--r--Carpet/Carpet/src/Restrict.cc74
1 files changed, 32 insertions, 42 deletions
diff --git a/Carpet/Carpet/src/Restrict.cc b/Carpet/Carpet/src/Restrict.cc
index c200a22b3..f32fd7188 100644
--- a/Carpet/Carpet/src/Restrict.cc
+++ b/Carpet/Carpet/src/Restrict.cc
@@ -11,7 +11,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Restrict.cc,v 1.23 2004/01/25 14:57:27 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Restrict.cc,v 1.24 2004/02/03 14:34:44 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Restrict_cc);
}
@@ -42,37 +42,29 @@ namespace Carpet {
for (int group=0; group<CCTK_NumGroups(); ++group) {
if (CCTK_GroupTypeI(group) == CCTK_GF) {
if (CCTK_QueryGroupStorageI(cgh, group)) {
- if (groupdata[group].transport_operator != op_none) {
+
+ const int tl = 0;
+
+ for (int m=0; m<maps; ++m) {
+ assert (m<(int)arrdata[group].size());
- const int tl = 0;
+ // use background time here (which may not be modified
+ // by the user)
+ const CCTK_REAL time = vtt[m]->time (tl, reflevel, mglevel);
- for (int m=0; m<maps; ++m) {
- assert (m<(int)arrdata[group].size());
-
- // use background time here (which may not be
- // modified by the user)
- const CCTK_REAL time = vtt[m]->time (tl, reflevel, mglevel);
-
- const CCTK_REAL time1 = vtt[m]->time (0, reflevel, mglevel);
- const CCTK_REAL time2 = (cgh->cctk_time - cctk_initial_time) / cgh->cctk_delta_time;
- assert (fabs(time1 - time2) / (fabs(time1) + fabs(time2) + fabs(cgh->cctk_delta_time)) < 1e-12);
-
- for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
- assert (var<(int)arrdata[group][m].data.size());
- for (int c=0; c<vhh[m]->components(reflevel); ++c) {
- arrdata[group][m].data[var]->ref_restrict
- (state, tl, reflevel, c, mglevel, time);
- }
- }
- }
+ const CCTK_REAL time1 = vtt[m]->time (0, reflevel, mglevel);
+ const CCTK_REAL time2 = (cgh->cctk_time - cctk_initial_time) / cgh->cctk_delta_time;
+ assert (fabs(time1 - time2) / (fabs(time1) + fabs(time2) + fabs(cgh->cctk_delta_time)) < 1e-12);
- } else {
- if (state.thestate==state_recv) {
- char * const groupname = CCTK_GroupName(group);
- Checkpoint ("(no restricting for group %s)", groupname);
- free (groupname);
+ for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
+ assert (var<(int)arrdata[group][m].data.size());
+ for (int c=0; c<vhh[m]->components(reflevel); ++c) {
+ arrdata[group][m].data[var]->ref_restrict
+ (state, tl, reflevel, c, mglevel, time);
+ }
}
- } // if ! do_transfer
+ }
+
} // if group has storage
} // if grouptype == CCTK_GF
} // loop over groups
@@ -87,22 +79,20 @@ namespace Carpet {
for (int group=0; group<CCTK_NumGroups(); ++group) {
if (CCTK_GroupTypeI(group) == CCTK_GF) {
if (CCTK_QueryGroupStorageI(cgh, group)) {
- if (groupdata[group].transport_operator != op_none) {
-
- const int tl = 0;
-
- for (int m=0; m<maps; ++m) {
- assert (m<(int)arrdata[group].size());
- for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
- assert (var<(int)arrdata[group][m].data.size());
- for (int c=0; c<vhh[m]->components(reflevel); ++c) {
- arrdata[group][m].data[var]->sync
- (state, tl, reflevel, c, mglevel);
- }
+
+ const int tl = 0;
+
+ for (int m=0; m<maps; ++m) {
+ assert (m<(int)arrdata[group].size());
+ for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
+ assert (var<(int)arrdata[group][m].data.size());
+ for (int c=0; c<vhh[m]->components(reflevel); ++c) {
+ arrdata[group][m].data[var]->sync
+ (state, tl, reflevel, c, mglevel);
}
}
-
- } // if do_transfer
+ }
+
} // if group has storage
} // if grouptype == CCTK_GF
} // loop over groups