/*@@ @file RK4-RK2.c @date 2012-03-25 @author Christian Reisswig @desc A routine to perform homegrown RK4RK2 evolution. Mostly copied from genericRK.c @enddesc @version $Header$ @@*/ #include "cctk.h" #include "cctk_Arguments.h" #include "cctk_Parameters.h" #include #include "ExternalVariables.h" /* #define MOLDEBUG */ /*@@ @routine MoL_RK4_RK2_Add @date @author @desc Performs a single step of a RK4_RK2 type time integration. @enddesc @calls @calledby @history @endhistory @@*/ void MoL_RK4_RK2_Add(CCTK_ARGUMENTS) { DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; #ifdef MOLDOESCOMPLEX CCTK_WARN(CCTK_WARN_ABORT, "not implemented"); #endif static int scratchspace_firstindex = -1; static int scratchspace_firstindex_slow = -1; if (scratchspace_firstindex < 0) { scratchspace_firstindex = CCTK_FirstVarIndex("MOL::SCRATCHSPACE"); scratchspace_firstindex_slow = CCTK_FirstVarIndex("MOL::SCRATCHSPACESLOW"); } int const step = MoL_Intermediate_Steps - *MoL_Intermediate_Step; int totalsize = 1; for (int d=0; dcctk_timefac; int const allvar1 = MoLNumEvolvedVariables + MoLNumEvolvedVariablesSlow; #pragma omp parallel for schedule(dynamic) for (int var1=0; var1