aboutsummaryrefslogtreecommitdiff
path: root/Carpet
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@aei.mpg.de>2005-03-03 10:25:00 +0000
committerErik Schnetter <schnetter@aei.mpg.de>2005-03-03 10:25:00 +0000
commit0c0269575d69787cd206c6153420f238918ebcb2 (patch)
treea1b16293610de0fdbe354fc74ebfdbc4acd7abde /Carpet
parenta6fa4a77af7ee12d1e60b923a3e5e9ddb894f1b4 (diff)
CarpetInterp: Handle groups that have not all time levels allocated
darcs-hash:20050303102506-891bb-118df8e38d1ca7e981bb4f97b14d5a747c1b3928.gz
Diffstat (limited to 'Carpet')
-rw-r--r--Carpet/CarpetInterp/src/interp.cc22
1 files changed, 13 insertions, 9 deletions
diff --git a/Carpet/CarpetInterp/src/interp.cc b/Carpet/CarpetInterp/src/interp.cc
index 4340e77f9..8912e98ff 100644
--- a/Carpet/CarpetInterp/src/interp.cc
+++ b/Carpet/CarpetInterp/src/interp.cc
@@ -501,17 +501,21 @@ namespace CarpetInterp {
assert (0);
}
- if (input_array_variable_indices[n] == -1) {
- input_arrays.at(n) = 0;
- } else if (tl >= my_num_tl) {
- // Do a dummy interpolation from a later timelevel
- int const vi = input_array_variable_indices[n];
- assert (vi>=0 && vi<CCTK_NumVars());
- input_arrays.at(n) = CCTK_VarDataPtrI (cgh, 0, vi);
+ if (vi == -1) {
+ input_arrays.at(n) = NULL;
} else {
- int const vi = input_array_variable_indices[n];
+ // Do a dummy interpolation from a later timelevel
+ // if the desired timelevel does not exist
+ int const my_tl = tl >= my_num_tl ? 0 : tl;
assert (vi>=0 && vi<CCTK_NumVars());
- input_arrays.at(n) = CCTK_VarDataPtrI (cgh, tl, vi);
+#if 0
+ input_arrays.at(n) = CCTK_VarDataPtrI (cgh, my_tl, vi);
+#else
+ int const vi0 = CCTK_FirstVarIndexI (gi);
+ input_arrays.at(n)
+ = ((*arrdata.at(gi).at(Carpet::map).data.at(vi-vi0))
+ (my_tl, reflevel, component, mglevel)->storage());
+#endif
}
} // for input arrays