Commit a19e3c80cf8a9e09bf51cca9ea28f9c11a923884

Authored by David Mayerich
1 parent ef1f6218

matrix edits for the 2D flow simulation

stim/biomodels/flow.h
@@ -118,7 +118,8 @@ namespace stim { @@ -118,7 +118,8 @@ namespace stim {
118 Q.resize(n_e); 118 Q.resize(n_e);
119 } 119 }
120 120
121 - void inversion(T** A, int order, T** C) { 121 + /// Calculate the inverse of A and store the result in C
  122 + void inversion(T** A, int order, T* C) {
122 123
123 #ifdef __CUDACC__ 124 #ifdef __CUDACC__
124 125
@@ -127,7 +128,7 @@ namespace stim { @@ -127,7 +128,7 @@ namespace stim {
127 for (unsigned i = 0; i < order; i++) 128 for (unsigned i = 0; i < order; i++)
128 for (unsigned j = 0; j < order; j++) 129 for (unsigned j = 0; j < order; j++)
129 Aflat[i * order + j] = A[i][j]; 130 Aflat[i * order + j] = A[i][j];
130 - T* Cflat = (T*)malloc(order * order * sizeof(T)); 131 + //T* Cflat = C;// (T*)malloc(order * order * sizeof(T));
131 132
132 // create device pointer 133 // create device pointer
133 T* d_Aflat; // flat original matrix 134 T* d_Aflat; // flat original matrix
@@ -175,14 +176,14 @@ namespace stim { @@ -175,14 +176,14 @@ namespace stim {
175 HANDLE_ERROR(cudaMemcpy(&d_Cflat, d_C, sizeof(T*), cudaMemcpyDeviceToHost)); 176 HANDLE_ERROR(cudaMemcpy(&d_Cflat, d_C, sizeof(T*), cudaMemcpyDeviceToHost));
176 177
177 // copy inverse matrix from device to host 178 // copy inverse matrix from device to host
178 - HANDLE_ERROR(cudaMemcpy(Cflat, d_Cflat, order * order * sizeof(T), cudaMemcpyDeviceToHost)); 179 + HANDLE_ERROR(cudaMemcpy(C, d_Cflat, order * order * sizeof(T), cudaMemcpyDeviceToHost));
179 180
180 - for(unsigned i = 0; i < order; i++)  
181 - memcpy(C[i], &Cflat[i*order], order * sizeof(T*)); 181 + //for(unsigned i = 0; i < order; i++)
  182 + // memcpy(C[i], &Cflat[i*order], order * sizeof(T*));
182 183
183 // clear up 184 // clear up
184 free(Aflat); 185 free(Aflat);
185 - free(Cflat); 186 + //free(Cflat);
186 HANDLE_ERROR(cudaFree(d_Aflat)); 187 HANDLE_ERROR(cudaFree(d_Aflat));
187 HANDLE_ERROR(cudaFree(d_Cflat)); 188 HANDLE_ERROR(cudaFree(d_Cflat));
188 HANDLE_ERROR(cudaFree(d_A)); 189 HANDLE_ERROR(cudaFree(d_A));
stim/math/matrix.h
1 -#ifndef RTS_MATRIX_H  
2 -#define RTS_MATRIX_H 1 +#ifndef STIM_MATRIX_H
  2 +#define STIM_MATRIX_H
3 3
4 //#include "rts/vector.h" 4 //#include "rts/vector.h"
5 #include <string.h> 5 #include <string.h>
stim/math/matrix_sq.h
1 -#ifndef RTS_MATRIX_H  
2 -#define RTS_MATRIX_H 1 +#ifndef STIM_MATRIX_SQ_H
  2 +#define STIM_MATRIX_SQ_H
3 3
4 //#include "rts/vector.h" 4 //#include "rts/vector.h"
5 #include <string.h> 5 #include <string.h>