Commit a19e3c80cf8a9e09bf51cca9ea28f9c11a923884
1 parent
ef1f6218
matrix edits for the 2D flow simulation
Showing
3 changed files
with
11 additions
and
10 deletions
Show diff stats
stim/biomodels/flow.h
... | ... | @@ -118,7 +118,8 @@ namespace stim { |
118 | 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 | 124 | #ifdef __CUDACC__ |
124 | 125 | |
... | ... | @@ -127,7 +128,7 @@ namespace stim { |
127 | 128 | for (unsigned i = 0; i < order; i++) |
128 | 129 | for (unsigned j = 0; j < order; j++) |
129 | 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 | 133 | // create device pointer |
133 | 134 | T* d_Aflat; // flat original matrix |
... | ... | @@ -175,14 +176,14 @@ namespace stim { |
175 | 176 | HANDLE_ERROR(cudaMemcpy(&d_Cflat, d_C, sizeof(T*), cudaMemcpyDeviceToHost)); |
176 | 177 | |
177 | 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 | 184 | // clear up |
184 | 185 | free(Aflat); |
185 | - free(Cflat); | |
186 | + //free(Cflat); | |
186 | 187 | HANDLE_ERROR(cudaFree(d_Aflat)); |
187 | 188 | HANDLE_ERROR(cudaFree(d_Cflat)); |
188 | 189 | HANDLE_ERROR(cudaFree(d_A)); | ... | ... |
stim/math/matrix.h