/*@@ @file WaveToy.cc @date @author Tom Goodale @desc Evolution routines for the wave equation solver @enddesc @version $Id$ @@*/ #include #include "cctk.h" #include "cctk_Parameters.h" #include "cctk_Arguments.h" static char *rcsid = "$Header$"; CCTK_FILEVERSION (CactusWave_WaveToyCXX_WaveToy_cc); #define val(gridfunc,i,j,k) gridfunc[CCTK_GFINDEX3D(cctkGH,i,j,k)] /*@@ @routine WaveToyC_Evolution @date @author Tom Goodale @desc Evolution for the wave equation @enddesc @@*/ extern "C" void WaveToyCXX_Evolution(CCTK_ARGUMENTS) { DECLARE_CCTK_ARGUMENTS; // Set up shorthands CCTK_REAL dx = CCTK_DELTA_SPACE(0); CCTK_REAL dy = CCTK_DELTA_SPACE(1); CCTK_REAL dz = CCTK_DELTA_SPACE(2); CCTK_REAL dt = CCTK_DELTA_TIME; CCTK_REAL dx2 = dx*dx; CCTK_REAL dy2 = dy*dy; CCTK_REAL dz2 = dz*dz; CCTK_REAL dt2 = dt*dt; CCTK_REAL dx2i = 1.0/dx2; CCTK_REAL dy2i = 1.0/dy2; CCTK_REAL dz2i = 1.0/dz2; CCTK_REAL factor = 2*(1 - (dt2)*(dx2i + dy2i + dz2i)); int istart = 1; int jstart = 1; int kstart = 1; int iend = cctk_lsh[0]-1; int jend = cctk_lsh[1]-1; int kend = cctk_lsh[2]-1; // // Do the evolution // for (int k=kstart; k