aboutsummaryrefslogtreecommitdiff
path: root/Examples/WaveHost/src/CaKernel__copy_to_device.code
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2012-03-15 17:23:09 +0100
committerIan Hinder <ian.hinder@aei.mpg.de>2012-03-15 17:23:09 +0100
commitfa52744053f212b79087a40dac8c9df8d6d40158 (patch)
tree8440718606729dfcdfb9fe2030f058c2b95d96d5 /Examples/WaveHost/src/CaKernel__copy_to_device.code
parent7840f15af87fc2b070da6f49fd2ee5c0f247e78f (diff)
Replace SimpleWaveCaKernel with WaveCaKernel
This script now generates WaveCaKernel and WaveHost which do the same thing, one using CaKernel and one using the host. This allows easy cross-comparison between the two methods.
Diffstat (limited to 'Examples/WaveHost/src/CaKernel__copy_to_device.code')
-rw-r--r--Examples/WaveHost/src/CaKernel__copy_to_device.code77
1 files changed, 77 insertions, 0 deletions
diff --git a/Examples/WaveHost/src/CaKernel__copy_to_device.code b/Examples/WaveHost/src/CaKernel__copy_to_device.code
new file mode 100644
index 0000000..24b4566
--- /dev/null
+++ b/Examples/WaveHost/src/CaKernel__copy_to_device.code
@@ -0,0 +1,77 @@
+#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 QAD(x) (SQR(SQR(x)))
+#define INV(x) ((1.0) / (x))
+#define SQR(x) ((x) * (x))
+#define CUB(x) ((x) * (x) * (x))
+
+CAKERNEL_copy_to_device_Begin
+
+ /* Include user-supplied include files */
+
+ /* Initialise finite differencing variables */
+ CCTK_REAL const dx = params.cagh_dx;
+ CCTK_REAL const dy = params.cagh_dy;
+ CCTK_REAL const dz = params.cagh_dz;
+ CCTK_REAL const dt = params.cagh_dt;
+ CCTK_REAL const t = params.cagh_time;
+ CCTK_REAL const dxi = INV(dx);
+ CCTK_REAL const dyi = INV(dy);
+ CCTK_REAL const dzi = INV(dz);
+ CCTK_REAL const khalf = 0.5;
+ CCTK_REAL const kthird = 1/3.0;
+ CCTK_REAL const ktwothird = 2.0/3.0;
+ CCTK_REAL const kfourthird = 4.0/3.0;
+ CCTK_REAL const keightthird = 8.0/3.0;
+ CCTK_REAL const hdxi = 0.5 * dxi;
+ CCTK_REAL const hdyi = 0.5 * dyi;
+ CCTK_REAL const hdzi = 0.5 * dzi;
+
+ /* Initialize predefined quantities */
+ CCTK_REAL const p1o2dx = 0.5*INV(dx);
+ CCTK_REAL const p1o2dy = 0.5*INV(dy);
+ CCTK_REAL const p1o2dz = 0.5*INV(dz);
+ CCTK_REAL const p1odx2 = INV(SQR(dx));
+ CCTK_REAL const p1ody2 = INV(SQR(dy));
+ CCTK_REAL const p1odz2 = INV(SQR(dz));
+
+ /* Assign local copies of arrays functions */
+
+
+
+ /* Calculate temporaries and arrays functions */
+
+ /* Copy local copies back to grid functions */
+ CAKERNEL_copy_to_device_Computations_Begin
+
+ /* Assign local copies of grid functions */
+
+ CCTK_REAL phiL = I3D(phi,0,0,0);
+ CCTK_REAL piL = I3D(pi,0,0,0);
+
+
+ /* Include user supplied include files */
+
+ /* Precompute derivatives */
+
+ /* Calculate temporaries and grid functions */
+ phiL = phiL;
+
+ piL = piL;
+
+ /* Copy local copies back to grid functions */
+ I3D(phi,0,0,0) = phiL;
+ I3D(pi,0,0,0) = piL;
+
+ CAKERNEL_copy_to_device_Computations_End
+
+CAKERNEL_copy_to_device_End