/* $Header$ */ #include #include #include "cctk.h" #include "cctk_Arguments.h" #include "Slab.h" static const char * rcsid = "$Header$"; CCTK_FILEVERSION(TAT_SlabTest_slabtest_c); static void runtest (CCTK_ARGUMENTS, struct xferinfo const * restrict const info) { DECLARE_CCTK_ARGUMENTS; int i, j, k; int mismatch; # define nvars 2 const CCTK_INT vartypes[nvars] = {CCTK_VARIABLE_REAL, CCTK_VARIABLE_INT}; const void *srcdataptrs[nvars] = {gfx, igfx}; void *dstdataptrs[nvars] = {gfy, igfy}; int ierr; ierr = Slab_MultiTransfer (cctkGH, cctk_dim, info, -1, nvars, vartypes, srcdataptrs, vartypes, dstdataptrs); assert (!ierr); mismatch = 0; for (k=0; k= 2 && cctk_lbnd[0] + i < 5 && cctk_lbnd[1] + j >= 3 && cctk_lbnd[1] + j < 5 && cctk_lbnd[2] + k >= 4 && cctk_lbnd[2] + k < 6) { gfz[ind] = igfz[ind] = 10000 * (cctk_lbnd[0] + i + 2) + 100 * (cctk_lbnd[1] + j + 1) + (cctk_lbnd[2] + k - 1); } else { gfz[ind] = gfy[ind]; igfz[ind] = igfy[ind]; } } } } assert (cctk_dim <= 3); for (d=0; d= 2 && cctk_lbnd[0] + i < 4 && cctk_lbnd[1] + j >= 3 && cctk_lbnd[1] + j < 6 && cctk_lbnd[2] + k >= 4 && cctk_lbnd[2] + k < 6) { gfz[ind] = igfz[ind] = 10000 * (cctk_lbnd[2] + k + 1) + 100 * (cctk_lbnd[1] + j + 2) + (cctk_lbnd[0] + i - 1); } else { gfz[ind] = gfy[ind]; igfz[ind] = igfy[ind]; } } } } assert (cctk_dim <= 3); for (d=0; d= 2 && cctk_lbnd[0] + i < 5 && cctk_lbnd[1] + j >= 3 && cctk_lbnd[1] + j < 5 && cctk_lbnd[2] + k >= 4 && cctk_lbnd[2] + k < 6) { gfz[ind] = igfz[ind] = 10000 * (cctk_lbnd[2] + k + 1) + 100 * (cctk_lbnd[0] + i + 3) + (cctk_lbnd[1] + j - 2); } else { gfz[ind] = gfy[ind]; igfz[ind] = igfy[ind]; } } } } assert (cctk_dim <= 3); for (d=0; d= 2 && cctk_lbnd[0] + i < 4 && cctk_lbnd[1] + j >= 3 && cctk_lbnd[1] + j < 6 && cctk_lbnd[2] + k >= 4 && cctk_lbnd[2] + k < 6) { gfz[ind] = igfz[ind] = 10000 * (cctk_lbnd[2] + k + 1) + 100 * (cctk_lbnd[1] + j + 2) + (4 - cctk_lbnd[0] - i); } else { gfz[ind] = gfy[ind]; igfz[ind] = igfy[ind]; } } } } assert (cctk_dim <= 3); for (d=0; d