/*@@ @file WaveToy.c @date @author Tom Goodale @desc Evolution routines for the wave equation solver @enddesc @@*/ #include "cctk_WarnLevel.h" #include "cctk.h" #include "cctk_parameters.h" #include "cctk_arguments.h" #include "cctk_Flesh.h" #include "cctk_Misc.h" #include "cctk_Comm.h" #include "cctk_Groups.h" #include "CactusBase/Boundary/src/Boundary.h" #include "CactusBase/CartGrid3D/src/Symmetry.h" static char *rcsid = "$Header$"; #define val(gridfunc,i,j,k) gridfunc[CCTK_GFINDEX3D(cctkGH,i,j,k)] static void WaveToyC_Boundaries(CCTK_CARGUMENTS); /*@@ @routine WaveToyC_Evolution @date @author Tom Goodale @desc Evolution for the wave equation @enddesc @calls CCTK_SyncGroup, WaveToyC_Boundaries @calledby @history @endhistory @@*/ extern "C" void WaveToyCXX_Evolution(CCTK_CARGUMENTS) { DECLARE_CCTK_CARGUMENTS // Set up shorthands CCTK_REAL dx = CCTK_DELTA_SPACE(0), dy = CCTK_DELTA_SPACE(1), dz = CCTK_DELTA_SPACE(2), dt = CCTK_DELTA_TIME, dx2=dx*dx, dy2=dy*dy, dz2=dz*dz, dt2=dt*dt, factor = 2*(1 - (dt2)*(1/dx2 + 1/dy2 + 1/dz2)); int iend = cctk_lsh[0]-1, jend = cctk_lsh[1]-1, kend = cctk_lsh[2]-1; // // Do the evolution // for (int k=1; k