#include #include #include "cctk.h" #include "ggf.hh" #include "gh.hh" #include "carpet.hh" extern "C" { static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Cycle.cc,v 1.18 2004/04/22 11:37:22 schnetter Exp $"; CCTK_FILEVERSION(Carpet_Carpet_Cycle_cc); } namespace Carpet { using namespace std; void CycleTimeLevels (const cGH* cgh) { Checkpoint ("CycleTimeLevels"); assert (is_level_mode()); for (int group=0; group=0 && reflevelcomponents(reflevel); ++c) { arrdata.at(group).at(m).data.at(var)->cycle (reflevel, c, mglevel); } } } break; case CCTK_SCALAR: case CCTK_ARRAY: if (do_global_mode) { for (int var=0; varcomponents(0); ++c) { arrdata.at(group).at(0).data.at(var)->cycle (0, c, mglevel); } } } break; default: assert (0); } // switch grouptype } // if storage } // for group } void FlipTimeLevels (const cGH* cgh) { Checkpoint ("FlipTimeLevels"); assert (is_level_mode()); for (int group=0; group0) { const int var0 = CCTK_FirstVarIndexI(group); assert (var0>=0); switch (CCTK_GroupTypeI(group)) { case CCTK_GF: for (int m=0; m<(int)arrdata.at(group).size(); ++m) { for (int var=0; varcomponents(reflevel); ++c) { arrdata.at(group).at(m).data.at(var)->flip (reflevel, c, mglevel); } } } break; case CCTK_SCALAR: case CCTK_ARRAY: if (do_global_mode) { for (int var=0; varcomponents(0); ++c) { arrdata.at(group).at(0).data.at(var)->flip (0, c, mglevel); } } } break; default: assert (0); } // switch grouptype } // if num_vars>0 } // if storage } // for group } } // namespace Carpet