diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2009-09-03 16:19:15 -0500 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2009-09-03 16:19:15 -0500 |
commit | a9bd55ce62a101ce9c2c8c40b9fda40ff894a250 (patch) | |
tree | 8f91d1fcf23269f6e494aae1ea11398c605eeac9 /Carpet/CarpetSlab/src/GetHyperslab.cc | |
parent | f20c19981b3e7fbd2413c96b41ec9dc1888f2d79 (diff) |
Import Carpet
Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
Diffstat (limited to 'Carpet/CarpetSlab/src/GetHyperslab.cc')
-rw-r--r-- | Carpet/CarpetSlab/src/GetHyperslab.cc | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/Carpet/CarpetSlab/src/GetHyperslab.cc b/Carpet/CarpetSlab/src/GetHyperslab.cc index 9a4e07117..8f86d8568 100644 --- a/Carpet/CarpetSlab/src/GetHyperslab.cc +++ b/Carpet/CarpetSlab/src/GetHyperslab.cc @@ -196,7 +196,8 @@ namespace CarpetSlab { ++ext_iter) { // Copy data - alldata->copy_from (state, mydata, *ext_iter); + int const proc = myhh->processor(reflevel, component); + alldata->copy_from (state, mydata, *ext_iter, collect_proc, proc); } @@ -207,26 +208,25 @@ namespace CarpetSlab { // Copy result to all processors if (dest_proc == -1) { vector<gdata*> tmpdata(CCTK_nProcs(cgh)); - vector<comm_state> state; for (int proc=0; proc<CCTK_nProcs(cgh); ++proc) { if (proc != collect_proc) { void* myhdata = rank==proc ? hdata : 0; tmpdata.at(proc) = mydata->make_typed (-1, error_centered, op_sync); tmpdata.at(proc)->allocate (alldata->extent(), proc, myhdata); - tmpdata.at(proc)->copy_from (state.at(proc), alldata, alldata->extent()); } } - for (int proc=0; proc<CCTK_nProcs(cgh); ++proc) { - if (proc != collect_proc) { - tmpdata.at(proc)->copy_from (state.at(proc), alldata, alldata->extent()); + for (comm_state state; not state.done(); state.step()) { + for (int proc=0; proc<CCTK_nProcs(cgh); ++proc) { + if (proc != collect_proc) { + tmpdata.at(proc)->copy_from (state, alldata, alldata->extent(), proc, collect_proc); + } } } for (int proc=0; proc<CCTK_nProcs(cgh); ++proc) { if (proc != collect_proc) { - tmpdata.at(proc)->copy_from (state.at(proc), alldata, alldata->extent()); delete tmpdata.at(proc); } } |