diff options
Diffstat (limited to 'CarpetDev/CarpetJacobi/src/Jacobi.cc')
-rw-r--r-- | CarpetDev/CarpetJacobi/src/Jacobi.cc | 24 |
1 files changed, 11 insertions, 13 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; |