aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetInterp/src/interp.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Carpet/CarpetInterp/src/interp.cc')
-rw-r--r--Carpet/CarpetInterp/src/interp.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/Carpet/CarpetInterp/src/interp.cc b/Carpet/CarpetInterp/src/interp.cc
index 3418a932c..0e1474e21 100644
--- a/Carpet/CarpetInterp/src/interp.cc
+++ b/Carpet/CarpetInterp/src/interp.cc
@@ -367,6 +367,7 @@ namespace CarpetInterp {
int const minrl = want_global_mode ? 0 : reflevel;
int const maxrl = want_global_mode ?
arrdata.AT(coord_group).AT(0).hh->reflevels() : reflevel+1;
+ //int maxrl = reflevel + 1;
// Find maximum number of components over all levels and maps
int maxncomps = 0;
@@ -1339,7 +1340,9 @@ namespace CarpetInterp {
// Number of neccessary time levels
// CCTK_REAL const level_time = cctkGH->cctk_time;
- CCTK_REAL const level_time = tt->get_time(mglevel, rl, tl);
+ //CCTK_REAL const level_time = tt->get_time(mglevel, rl, tl);
+ double get_time = tt->get_time(mglevel, rl, tl);
+ CCTK_REAL const level_time = (rl == reflevel && tl == 0) ? cctkGH->cctk_time : tt->get_time(mglevel, rl, tl);
vector<int> num_tl (N_input_arrays, 0);
vector<bool> need_time_interp (N_output_arrays);
for (int m=0; m<N_output_arrays; ++m) {
@@ -1405,11 +1408,11 @@ namespace CarpetInterp {
class InterpolationTimes : private vector<CCTK_REAL>
{
public:
- InterpolationTimes (int const rl, int const num_timelevels_ )
+ InterpolationTimes (const cGH *cctkGH, int reflevel, int const rl, int const num_timelevels_ )
: vector<CCTK_REAL> (num_timelevels_ )
{
for (int tl=0; tl<num_timelevels_; ++tl) {
- at(tl) = tt->get_time (mglevel, rl, tl);
+ at(tl) = (rl == reflevel && tl == 0) ? cctkGH->cctk_time : tt->get_time(mglevel, rl, tl);
}
}
@@ -1767,7 +1770,7 @@ namespace CarpetInterp {
int const interp_num_tl =
interp_num_time_levels.AT(n) > 0 ?
interp_num_time_levels.AT(n) : num_tl.AT(n);
- const InterpolationTimes times (rl, interp_num_tl);
+ const InterpolationTimes times (cctkGH, reflevel, rl, interp_num_tl);
const InterpolationWeights tfacs (deriv_order, times, current_time,
delta_time);