diff options
author | schnetter <> | 2004-09-17 14:37:00 +0000 |
---|---|---|
committer | schnetter <> | 2004-09-17 14:37:00 +0000 |
commit | d4752b8eddff766ca6d4280eaa0c4249f850e511 (patch) | |
tree | 2e56ff0b12b308e62ce9b88f3012da055ddf88c5 /Carpet/CarpetLib/src/ggf.cc | |
parent | 59e03f2e92628fede1db8e6aa23b3f3487221188 (diff) |
Recompose vector groups on multiple refinement levels correctly.
darcs-hash:20040917143726-07bb3-cdfed6bde9278cc33ad4ad0a04ed13d6a700b65d.gz
Diffstat (limited to 'Carpet/CarpetLib/src/ggf.cc')
-rw-r--r-- | Carpet/CarpetLib/src/ggf.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/Carpet/CarpetLib/src/ggf.cc b/Carpet/CarpetLib/src/ggf.cc index bcb6263ed..c26b22dbc 100644 --- a/Carpet/CarpetLib/src/ggf.cc +++ b/Carpet/CarpetLib/src/ggf.cc @@ -1,4 +1,4 @@ -// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.45 2004/08/07 19:47:11 schnetter Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.46 2004/09/17 16:37:26 schnetter Exp $ #include <assert.h> #include <math.h> @@ -36,7 +36,12 @@ ggf<D>::ggf (const int varindex, const operator_type transport_operator, vectorleader(vectorleader) { assert (&t.h == &d.h); - + + assert (vectorlength >= 1); + assert (vectorindex >= 0 && vectorindex < vectorlength); + assert ((vectorindex==0 && !vectorleader) + || (vectorindex!=0 && vectorleader)); + d.add(this); } @@ -277,9 +282,9 @@ void ggf<D>::flip (int rl, int c, int ml) { template<int D> void ggf<D>::copycat (comm_state<D>& state, int tl1, int rl1, int c1, int ml1, - const ibbox dh<D>::dboxes::* recv_list, + const ibbox dh<D>::dboxes::* recv_box, int tl2, int rl2, int ml2, - const ibbox dh<D>::dboxes::* send_list) + const ibbox dh<D>::dboxes::* send_box) { assert (tl1>=tmin && tl1<=tmax); assert (rl1>=0 && rl1<h.reflevels()); @@ -289,8 +294,8 @@ void ggf<D>::copycat (comm_state<D>& state, assert (rl2>=0 && rl2<h.reflevels()); const int c2=c1; assert (ml2<h.mglevels(rl2,c2)); - const ibbox recv = d.boxes.at(rl1).at(c1).at(ml1).*recv_list; - const ibbox send = d.boxes.at(rl2).at(c2).at(ml2).*send_list; + const ibbox recv = d.boxes.at(rl1).at(c1).at(ml1).*recv_box; + const ibbox send = d.boxes.at(rl2).at(c2).at(ml2).*send_box; assert (all(recv.shape()==send.shape())); // copy the content assert (recv==send); |