summaryrefslogtreecommitdiff
path: root/benchmarks/CUDA/DG/include/fem.h
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2010-07-15 18:09:46 -0800
committerTor Aamodt <[email protected]>2010-07-15 18:09:46 -0800
commit69f2911e04ffb1b19eef1fafb8c040af271f656e (patch)
tree231d3b6bdc3a202f7c255bfcf7bf2c36e32cee9e /benchmarks/CUDA/DG/include/fem.h
creating branch for adding support for CUDA 3.x and Fermi
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 6829]
Diffstat (limited to 'benchmarks/CUDA/DG/include/fem.h')
-rw-r--r--benchmarks/CUDA/DG/include/fem.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/benchmarks/CUDA/DG/include/fem.h b/benchmarks/CUDA/DG/include/fem.h
new file mode 100644
index 0000000..fd2edcb
--- /dev/null
+++ b/benchmarks/CUDA/DG/include/fem.h
@@ -0,0 +1,109 @@
+#include <strings.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <math.h>
+
+#include "Mesh.h"
+
+/* prototypes for storage functions (Utils.c) */
+double **BuildMatrix(int Nrows, int Ncols);
+double *BuildVector(int Nrows);
+int **BuildIntMatrix(int Nrows, int Ncols);
+int *BuildIntVector(int Nrows);
+
+double **DestroyMatrix(double **);
+double *DestroyVector(double *);
+int **DestroyIntMatrix(int **);
+int *DestroyIntVector(int *);
+
+void PrintMatrix(char *message, double **A, int Nrows, int Ncols);
+void SaveMatrix(char *filename, double **A, int Nrows, int Ncols);
+
+/* geometric/mesh functions */
+Mesh *ReadMesh2d(char *filename);
+Mesh *ReadMesh3d(char *filename);
+
+void PrintMesh ( Mesh *mesh );
+
+void Normals2d(Mesh *mesh, int k, double *nx, double *ny, double *sJ);
+void Normals3d(Mesh *mesh, int k,
+ double *nx, double *ny, double *nz, double *sJ);
+
+void GeometricFactors2d(Mesh *mesh, int k,
+ double *drdx, double *dsdx, double *drdy, double *dsdy,
+ double *J);
+
+void GeometricFactors3d(Mesh *mesh, int k,
+ double *drdx, double *dsdx, double *dtdx,
+ double *drdy, double *dsdy, double *dtdy,
+ double *drdz, double *dsdz, double *dtdz,
+ double *J);
+
+/* start up */
+void StartUp2d(Mesh *mesh);
+void StartUp3d(Mesh *mesh);
+
+void BuildMaps2d(Mesh *mesh);
+void BuildMaps3d(Mesh *mesh);
+
+/* Parallel */
+void LoadBalance2d(Mesh *mesh);
+void LoadBalance3d(Mesh *mesh);
+
+void FacePair2d(Mesh *mesh, int *maxNv);
+void FacePair3d(Mesh *mesh, int *maxNv);
+
+void ParallelPairs(void *objs, int Nmyobjs, int sizeobj,
+ int (*numget)(const void *),
+ void (*numset)(const void *, int ),
+ int (*procget)(const void *),
+ void (*marry)(const void *, const void *),
+ int (*compare_objs)(const void *, const void *));
+
+void MaxwellsMPISend2d(Mesh *mesh);
+void MaxwellsMPIRecv2d(Mesh *mesh, float *c_partQ);
+
+void MaxwellsMPISend3d(Mesh *mesh);
+void MaxwellsMPIRecv3d(Mesh *mesh, float *c_partQ);
+
+
+/* GPU functions */
+void gpu_set_data2d(int K,
+ double *d_Hx, double *d_Hy, double *d_Ez);
+void gpu_set_data3d(int K,
+ double *d_Hx, double *d_Hy, double *d_Hz,
+ double *d_Ex, double *d_Ey, double *d_Ez);
+
+void gpu_get_data2d(int K,
+ double *d_Hx, double *d_Hy, double *d_Ez);
+void gpu_get_data3d(int K,
+ double *d_Hx, double *d_Hy, double *d_Hz,
+ double *d_Ex, double *d_Ey, double *d_Ez);
+
+double InitGPU2d(Mesh *mesh, int Nfields);
+double InitGPU3d(Mesh *mesh, int Nfields);
+
+/* CPU functions */
+void cpu_set_data2d(Mesh *mesh, double *Hx, double *Hy, double *Ez);
+void cpu_set_data3d(Mesh *mesh, double *Hx, double *Hy, double *Hz,
+ double *Ex, double *Ey, double *Ez);
+
+double InitCPU2d(Mesh *mesh, int Nfields);
+double InitCPU3d(Mesh *mesh, int Nfields);
+
+/* Maxwells functions */
+void MaxwellsKernel2d(Mesh *mesh, float frka, float frkb, float fdt);
+void MaxwellsKernel3d(Mesh *mesh, float frka, float frkb, float fdt);
+
+void MaxwellsRHS2d(Mesh *mesh, float frka, float frkb, float fdt);
+void MaxwellsRHS3d(Mesh *mesh, float frka, float frkb, float fdt);
+
+void MaxwellsRun2d(Mesh *mesh, double FinalTime, double dt);
+void MaxwellsRun3d(Mesh *mesh, double FinalTime, double dt);
+
+/* CUDA headers */
+#ifdef CUDA
+#include "cuda.h"
+#include "cuda_runtime_api.h"
+#endif
+