aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetSlab/src/GetHyperslab.cc
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2009-09-03 16:19:15 -0500
committerErik Schnetter <schnetter@cct.lsu.edu>2009-09-03 16:19:15 -0500
commita9bd55ce62a101ce9c2c8c40b9fda40ff894a250 (patch)
tree8f91d1fcf23269f6e494aae1ea11398c605eeac9 /Carpet/CarpetSlab/src/GetHyperslab.cc
parentf20c19981b3e7fbd2413c96b41ec9dc1888f2d79 (diff)
Import Carpet
Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
Diffstat (limited to 'Carpet/CarpetSlab/src/GetHyperslab.cc')
-rw-r--r--Carpet/CarpetSlab/src/GetHyperslab.cc14
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);
}
}