diff options
Diffstat (limited to 'Carpet/CarpetInterp/src/interp.cc')
-rw-r--r-- | Carpet/CarpetInterp/src/interp.cc | 11 |
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); |