diff options
author | schnetter <> | 2004-04-19 13:00:00 +0000 |
---|---|---|
committer | schnetter <> | 2004-04-19 13:00:00 +0000 |
commit | 38b235ebdf5515590b1529d617df692406b6d0cd (patch) | |
tree | dcb6b1f62fb12fe6543ff4d0ec94f21bfa95d855 | |
parent | 042bfe38f3c2a83bddc3ed7e1f809428142c3b74 (diff) |
Loop over all components of the parent grid when regridding.
darcs-hash:20040419130015-07bb3-1ec081e478db9a67b131f6f351719b45c9b12a9c.gz
-rw-r--r-- | Carpet/CarpetLib/src/ggf.cc | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/Carpet/CarpetLib/src/ggf.cc b/Carpet/CarpetLib/src/ggf.cc index 6b78c43dd..64e0c8856 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.37 2004/04/18 13:28:25 schnetter Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.38 2004/04/19 15:00:15 schnetter Exp $ #include <assert.h> #include <stdlib.h> @@ -118,21 +118,24 @@ void ggf<D>::recompose () { // Initialise from coarser level, if possible if (rl>0) { if (transport_operator != op_none) { - assert (tmax-tmin+1 >= prolongation_order_time+1); - vector<int> tls(prolongation_order_time+1); - for (int i=0; i<=prolongation_order_time; ++i) { + const int numtl = prolongation_order_time+1; + assert (tmax-tmin+1 >= numtl); + vector<int> tls(numtl); + vector<CCTK_REAL> times(numtl); + for (int i=0; i<numtl; ++i) { tls.at(i) = tmax - i; - } - vector<const gdata<D>*> gsrcs(tls.size()); - vector<CCTK_REAL> times(tls.size()); - for (int i=0; i<(int)gsrcs.size(); ++i) { - gsrcs.at(i) = storage.at(tls.at(i)-tmin).at(rl-1).at(c).at(ml); times.at(i) = t.time(tls.at(i),rl-1,ml); } - const CCTK_REAL time = t.time(tl,rl,ml); - for (typename ibset::const_iterator r=work.begin(); r!=work.end(); ++r) { - storage.at(tl-tmin).at(rl).at(c).at(ml)->interpolate_from (state, gsrcs, times, *r, time, d.prolongation_order_space, prolongation_order_time); - } + for (int cc=0; cc<(int)storage.at(tl-tmin).at(rl-1).size(); ++cc) { + vector<const gdata<D>*> gsrcs(numtl); + for (int i=0; i<numtl; ++i) { + gsrcs.at(i) = storage.at(tls.at(i)-tmin).at(rl-1).at(cc).at(ml); + } + const CCTK_REAL time = t.time(tl,rl,ml); + for (typename ibset::const_iterator r=work.begin(); r!=work.end(); ++r) { + storage.at(tl-tmin).at(rl).at(c).at(ml)->interpolate_from (state, gsrcs, times, *r, time, d.prolongation_order_space, prolongation_order_time); + } + } // for cc } // if transport_operator } // if rl |