#include #include #include #include "cctk.h" #include "cctk_Parameters.h" #include "cctk_Arguments.h" #include "Hyperslab.h" #include "CactusPUGH/PUGH/src/include/pugh.h" #include "CactusBase/IOUtil/src/ioGH.h" #define MAX_DIM 3 #define MAX_FACE 6 #define EPS 1e-10 #define BAD -42 #define ABS(a) ((a)<0 ? -(a) : (a)) void InitTestGF(CCTK_ARGUMENTS) { DECLARE_CCTK_ARGUMENTS int i,j,k; for(i=0; i < cctk_lsh[0]; i++) { for(j=0; j < cctk_lsh[1]; j++) { for(k=0; k < cctk_lsh[2]; k++) { tx[CCTK_GFINDEX3D(cctkGH,i,j,k)] = i; ty[CCTK_GFINDEX3D(cctkGH,i,j,k)] = j; tz[CCTK_GFINDEX3D(cctkGH,i,j,k)] = k; } } } } void TestSlab(CCTK_ARGUMENTS) { DECLARE_CCTK_ARGUMENTS int gs[3], di[3], ds[1]; /* global start/direction/downsampling*/ int ls[3], le[3]; /* local start/end */ int dsize[1]; /* number of points */ int nprocs,iproc; /* number of procs */ int l; int vindex, vdim, vtimelvl; CCTK_REAL *dptr; /*$vindex = CCTK_VarIndex("hyperslab::tz");$*/ vindex = CCTK_VarIndex("grid::z"); vtimelvl = CCTK_NumTimeLevelsFromVarI (vindex) - 1; vdim = CCTK_GroupDimFromVarI(vindex); /*$gs[0]=1; gs[1]=5; gs[2]=9; di[0]= 0; di[1]=-1; di[2]=-2;$*/ gs[0]=1; gs[1]=1; gs[2]=1; di[0]= 0; di[1]= 0; di[2]= 1; ds[0]=1; printf("Calling CollectData \n"); CollectData1D(cctkGH, vindex, vtimelvl, vdim, gs, di, ds, 10, &dptr, dsize); printf("TestSlab: %d \n",dsize[0]); for (l=0;l