diff options
Diffstat (limited to 'CarpetDev')
-rw-r--r-- | CarpetDev/CarpetJacobi/src/Jacobi.cc | 24 | ||||
-rw-r--r-- | CarpetDev/CarpetMG/src/mg.cc | 5 |
2 files changed, 13 insertions, 16 deletions
diff --git a/CarpetDev/CarpetJacobi/src/Jacobi.cc b/CarpetDev/CarpetJacobi/src/Jacobi.cc index 0f1149918..b6969b6a5 100644 --- a/CarpetDev/CarpetJacobi/src/Jacobi.cc +++ b/CarpetDev/CarpetJacobi/src/Jacobi.cc @@ -23,7 +23,7 @@ namespace Carpet { // TODO: fix this - void CycleTimeLevels (const cGH* cctkGH); + void CycleTimeLevels (cGH* cctkGH); void Restrict (const cGH* cctkGH); }; @@ -202,12 +202,12 @@ namespace CarpetJacobi { * const_cast<CCTK_REAL *> (& cctkGH->cctk_delta_time) = delta_time; BEGIN_REFLEVEL_LOOP(cctkGH) { * const_cast<CCTK_REAL *> (& cctkGH->cctk_time) = global_time; - for (int m=0; m<maps; ++m) { - vtt[m]->set_time (reflevel, mglevel, 0); - vtt[m]->set_delta - (reflevel, mglevel, - 1.0 / ipow (maxval (spacereflevelfact), reflevelpower)); + for (int tl=0; tl<timelevels; ++tl) { + tt->set_time (mglevel, reflevel, tl, global_time - tl * delta_time); } + tt->set_delta + (mglevel, reflevel, + 1.0 / ipow (maxval (spacereflevelfact), reflevelpower)); } END_REFLEVEL_LOOP; @@ -252,13 +252,11 @@ namespace CarpetJacobi { if (reflevel <= solve_level && (iter-istep) % do_every == 0) { // Advance time - for (int m=0; m<maps; ++m) { - vtt[m]->advance_time (reflevel, mglevel); - } + tt->advance_time (mglevel, reflevel); * const_cast<CCTK_REAL *> (& cctkGH->cctk_time) = (1.0 * (iter - istep + do_every) / ipow (maxval (maxspacereflevelfact), reflevelpower)); - CycleTimeLevels (cctkGH); + CycleTimeLevels (const_cast<cGH*>(cctkGH)); if (DEBUG) cout << "CJ residual iter " << iter << " reflevel " << reflevel << " time " << cctkGH->cctk_time << flush << endl; // Advance time levels @@ -569,10 +567,10 @@ namespace CarpetJacobi { * const_cast<CCTK_REAL *> (& cctkGH->cctk_delta_time) = delta_time; BEGIN_REFLEVEL_LOOP(cctkGH) { * const_cast<CCTK_REAL *> (& cctkGH->cctk_time) = global_time; - for (int m=0; m<maps; ++m) { - vtt[m]->set_time (reflevel, mglevel, 0); - vtt[m]->set_delta (reflevel, mglevel, 1.0 / timereflevelfact); + for (int tl=0; tl<timelevels; ++tl) { + tt->set_time (mglevel, reflevel, tl, global_time - tl * delta_time); } + tt->set_delta (mglevel, reflevel, 1.0 / timereflevelfact); } END_REFLEVEL_LOOP; } END_GLOBAL_MODE; diff --git a/CarpetDev/CarpetMG/src/mg.cc b/CarpetDev/CarpetMG/src/mg.cc index d76a10212..07e889e02 100644 --- a/CarpetDev/CarpetMG/src/mg.cc +++ b/CarpetDev/CarpetMG/src/mg.cc @@ -1015,7 +1015,6 @@ namespace CarpetMG { int const tl = 0; for (comm_state state; !state.done(); state.step()) { for (int m=0; m<maps; ++m) { - const CCTK_REAL time = vtt.at(m)->time (tl, reflevel, mglevel); for (int n=0; n<var.size(); ++n) { int const vi = var.at(n); assert (vi >= 0); @@ -1024,7 +1023,7 @@ namespace CarpetMG { int const v0 = CCTK_FirstVarIndexI (gi); assert (v0 >= 0); arrdata.at(gi).at(m).data.at(vi-v0)->ref_restrict_all - (state, tl, reflevel, mglevel, time); + (state, tl, reflevel, mglevel); } // for n } // for m } // for state @@ -1040,9 +1039,9 @@ namespace CarpetMG { { assert (reflevel > 0); int const tl = 0; + CCTK_REAL const time = tt->get_time (mglevel, reflevel, tl); for (comm_state state; !state.done(); state.step()) { for (int m=0; m<maps; ++m) { - const CCTK_REAL time = vtt.at(m)->time (tl, reflevel, mglevel); for (int n=0; n<var.size(); ++n) { int const vi = var.at(n); assert (vi >= 0); |