diff options
Diffstat (limited to 'benchmarks/CUDA/DG/src/Utils.c')
| -rw-r--r-- | benchmarks/CUDA/DG/src/Utils.c | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/benchmarks/CUDA/DG/src/Utils.c b/benchmarks/CUDA/DG/src/Utils.c deleted file mode 100644 index e0364cf..0000000 --- a/benchmarks/CUDA/DG/src/Utils.c +++ /dev/null @@ -1,155 +0,0 @@ -#include "fem.h" - -/* some very basic memory allocation routines */ - -/* row major storage for a 2D matrix array */ -double **BuildMatrix(int Nrows, int Ncols){ - int n; - double **A = (double**) calloc(Nrows, sizeof(double*)); - - A[0] = (double*) calloc(Nrows*Ncols, sizeof(double)); - - for(n=1;n<Nrows;++n){ - A[n] = A[n-1]+ Ncols; - } - - return A; -} - -double *BuildVector(int Nrows){ - - double *A = (double*) calloc(Nrows, sizeof(double)); - - return A; -} - -/* row major storage for a 2D matrix array */ -int **BuildIntMatrix(int Nrows, int Ncols){ - int n; - int **A = (int**) calloc(Nrows, sizeof(int*)); - - A[0] = (int*) calloc(Nrows*Ncols, sizeof(int)); - - for(n=1;n<Nrows;++n){ - A[n] = A[n-1]+ Ncols; - } - - return A; -} - -int *BuildIntVector(int Nrows){ - - int *A = (int*) calloc(Nrows, sizeof(int)); - - return A; -} - -double *DestroyVector(double *v){ - free(v); - return NULL; -} - -double **DestroyMatrix(double **A){ - free(A[0]); - free(A); - - return NULL; -} - -int *DestroyIntVector(int *v){ - free(v); - return NULL; -} - -int **DestroyIntMatrix(int **A){ - free(A[0]); - free(A); - - return NULL; -} - -void PrintMatrix(char *message, double **A, int Nrows, int Ncols){ - int n,m; - - printf("%s\n", message); - for(n=0;n<Nrows;++n){ - for(m=0;m<Ncols;++m){ - printf(" %g ", A[n][m]); - } - printf(" \n"); - } -} - - -void SaveMatrix(char *filename, double **A, int Nrows, int Ncols){ - int n,m; - - FILE *fp = fopen(filename, "w"); - - for(n=0;n<Nrows;++n){ - for(m=0;m<Ncols;++m){ - fprintf(fp, " %g ", A[n][m]); - } - fprintf(fp, " \n"); - } - - fclose(fp); -} - - -int trianglebase(Mesh *mesh, int k){ - - double x1 = mesh->GX[k][0]; - double x2 = mesh->GX[k][1]; - double x3 = mesh->GX[k][2]; - - double y1 = mesh->GY[k][0]; - double y2 = mesh->GY[k][1]; - double y3 = mesh->GY[k][2]; - - double d1 = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2); - double d2 = (x2-x3)*(x2-x3) + (y2-y3)*(y2-y3); - double d3 = (x3-x1)*(x3-x1) + (y3-y1)*(y3-y1); - - /* find maximum length face */ - if(d1>=d2 && d1>=d3) - return 0; - else if(d2>=d3) - return 1; - - return 2; -} - - -int tetbase(Mesh *mesh, int k){ - - double x1 = mesh->GX[k][0]; - double x2 = mesh->GX[k][1]; - double x3 = mesh->GX[k][2]; - double x4 = mesh->GX[k][3]; - - double y1 = mesh->GY[k][0]; - double y2 = mesh->GY[k][1]; - double y3 = mesh->GY[k][2]; - double y4 = mesh->GY[k][3]; - - double z1 = mesh->GZ[k][0]; - double z2 = mesh->GZ[k][1]; - double z3 = mesh->GZ[k][2]; - double z4 = mesh->GZ[k][3]; - - double d1 = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) + (z1-z2)*(z1-z2); - double d2 = (x2-x3)*(x2-x3) + (y2-y3)*(y2-y3) + (z2-z3)*(z2-z3); - double d3 = (x3-x4)*(x3-x4) + (y3-y4)*(y3-y4) + (z3-z4)*(z3-z4); - double d4 = (x4-x1)*(x4-x1) + (y4-y1)*(y4-y1) + (z4-z1)*(z4-z1); - - /* find maximum length face */ - if(d1>=d2 && d1>=d3 && d1>=d4) - return 0; - else if(d2>=d3 && d2>=d4) - return 1; - else if(d3>=d4) - return 2; - - return 3; -} |
