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 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
1   -#ifndef RTS_MATRIX_H
2   -#define RTS_MATRIX_H
  1 +#ifndef STIM_MATRIX_H
  2 +#define STIM_MATRIX_H
3 3  
4 4 //#include "rts/vector.h"
5 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 4 //#include "rts/vector.h"
5 5 #include <string.h>
... ...