diff options
author | schnetter <> | 2004-02-03 13:34:00 +0000 |
---|---|---|
committer | schnetter <> | 2004-02-03 13:34:00 +0000 |
commit | 575ab717e01613692cc35898b8aa44e3ff75297a (patch) | |
tree | 69b9172e65f2817f508cd580d87e41b42689fd49 /Carpet/Carpet/src/Restrict.cc | |
parent | 44c2ac4da91e6a90fd84629dd66262a839f1dae5 (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.cc | 74 |
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 |