#undef KRANC_DIFF_FUNCTIONS #define KRANC_C #include "Differencing.h" #include "GenericFD.h" #undef KRANC_GFOFFSET3D #define KRANC_GFOFFSET3D(u,i,j,k) I3D(u,i,j,k) /* Define macros used in calculations */ #define INITVALUE (42) #define INV(x) ((CCTK_REAL)1.0 / (x)) #define SQR(x) ((x) * (x)) #define CUB(x) ((x) * SQR(x)) #define QAD(x) (SQR(SQR(x))) CAKERNEL_calc_rhs_2_Begin /* Include user-supplied include files */ /* Initialise finite differencing variables */ CCTK_REAL /*const*/ dx CCTK_ATTRIBUTE_UNUSED = params.cagh_dx; CCTK_REAL /*const*/ dy CCTK_ATTRIBUTE_UNUSED = params.cagh_dy; CCTK_REAL /*const*/ dz CCTK_ATTRIBUTE_UNUSED = params.cagh_dz; CCTK_REAL /*const*/ dt CCTK_ATTRIBUTE_UNUSED = params.cagh_dt; CCTK_REAL /*const*/ t CCTK_ATTRIBUTE_UNUSED = params.cagh_time; CCTK_REAL /*const*/ dxi CCTK_ATTRIBUTE_UNUSED = INV(dx); CCTK_REAL /*const*/ dyi CCTK_ATTRIBUTE_UNUSED = INV(dy); CCTK_REAL /*const*/ dzi CCTK_ATTRIBUTE_UNUSED = INV(dz); CCTK_REAL /*const*/ khalf CCTK_ATTRIBUTE_UNUSED = 0.5; CCTK_REAL /*const*/ kthird CCTK_ATTRIBUTE_UNUSED = 1/3.0; CCTK_REAL /*const*/ ktwothird CCTK_ATTRIBUTE_UNUSED = 2.0/3.0; CCTK_REAL /*const*/ kfourthird CCTK_ATTRIBUTE_UNUSED = 4.0/3.0; CCTK_REAL /*const*/ keightthird CCTK_ATTRIBUTE_UNUSED = 8.0/3.0; CCTK_REAL /*const*/ hdxi CCTK_ATTRIBUTE_UNUSED = 0.5 * dxi; CCTK_REAL /*const*/ hdyi CCTK_ATTRIBUTE_UNUSED = 0.5 * dyi; CCTK_REAL /*const*/ hdzi CCTK_ATTRIBUTE_UNUSED = 0.5 * dzi; /* Initialize predefined quantities */ CCTK_REAL /*const*/ p1o12dx CCTK_ATTRIBUTE_UNUSED = 0.0833333333333333333333333333333*INV(dx); CCTK_REAL /*const*/ p1o12dy CCTK_ATTRIBUTE_UNUSED = 0.0833333333333333333333333333333*INV(dy); CCTK_REAL /*const*/ p1o12dz CCTK_ATTRIBUTE_UNUSED = 0.0833333333333333333333333333333*INV(dz); CCTK_REAL /*const*/ p1o144dxdy CCTK_ATTRIBUTE_UNUSED = 0.00694444444444444444444444444444*INV(dx*dy); CCTK_REAL /*const*/ p1o144dxdz CCTK_ATTRIBUTE_UNUSED = 0.00694444444444444444444444444444*INV(dx*dz); CCTK_REAL /*const*/ p1o144dydz CCTK_ATTRIBUTE_UNUSED = 0.00694444444444444444444444444444*INV(dy*dz); CCTK_REAL /*const*/ p1o2dx CCTK_ATTRIBUTE_UNUSED = 0.5*INV(dx); CCTK_REAL /*const*/ p1o2dy CCTK_ATTRIBUTE_UNUSED = 0.5*INV(dy); CCTK_REAL /*const*/ p1o2dz CCTK_ATTRIBUTE_UNUSED = 0.5*INV(dz); CCTK_REAL /*const*/ p1o4dxdy CCTK_ATTRIBUTE_UNUSED = 0.25*INV(dx*dy); CCTK_REAL /*const*/ p1o4dxdz CCTK_ATTRIBUTE_UNUSED = 0.25*INV(dx*dz); CCTK_REAL /*const*/ p1o4dydz CCTK_ATTRIBUTE_UNUSED = 0.25*INV(dy*dz); CCTK_REAL /*const*/ p1odx2 CCTK_ATTRIBUTE_UNUSED = INV(SQR(dx)); CCTK_REAL /*const*/ p1ody2 CCTK_ATTRIBUTE_UNUSED = INV(SQR(dy)); CCTK_REAL /*const*/ p1odz2 CCTK_ATTRIBUTE_UNUSED = INV(SQR(dz)); CCTK_REAL /*const*/ pm1o12dx2 CCTK_ATTRIBUTE_UNUSED = -0.0833333333333333333333333333333*INV(SQR(dx)); CCTK_REAL /*const*/ pm1o12dy2 CCTK_ATTRIBUTE_UNUSED = -0.0833333333333333333333333333333*INV(SQR(dy)); CCTK_REAL /*const*/ pm1o12dz2 CCTK_ATTRIBUTE_UNUSED = -0.0833333333333333333333333333333*INV(SQR(dz)); /* Assign local copies of arrays functions */ /* Calculate temporaries and arrays functions */ /* Copy local copies back to grid functions */ CAKERNEL_calc_rhs_2_Computations_Begin /* Assign local copies of grid functions */ CCTK_REAL phiL CCTK_ATTRIBUTE_UNUSED = I3D(phi,0,0,0); CCTK_REAL piL CCTK_ATTRIBUTE_UNUSED = I3D(pi,0,0,0); /* Include user supplied include files */ /* Precompute derivatives */ CCTK_REAL /*const*/ PDstandard2th11phi CCTK_ATTRIBUTE_UNUSED = PDstandard2th11(phi); CCTK_REAL /*const*/ PDstandard2th22phi CCTK_ATTRIBUTE_UNUSED = PDstandard2th22(phi); CCTK_REAL /*const*/ PDstandard2th33phi CCTK_ATTRIBUTE_UNUSED = PDstandard2th33(phi); /* Calculate temporaries and grid functions */ CCTK_REAL CCTK_ATTRIBUTE_UNUSED phirhsL = piL; CCTK_REAL CCTK_ATTRIBUTE_UNUSED pirhsL = PDstandard2th11phi + PDstandard2th22phi + PDstandard2th33phi; /* Copy local copies back to grid functions */ I3D(phirhs,0,0,0) = phirhsL; I3D(pirhs,0,0,0) = pirhsL; CAKERNEL_calc_rhs_2_Computations_End CAKERNEL_calc_rhs_2_End