23 int ASize = 5*( (nx-1)*ny + nx*(ny-1) ) - 4*(nx+ny) + 4,
24 numUV = (nx-1)*ny + nx*(ny-1);
26 A.resize(numUV, numUV, ASize);
28 int *LRows = thrust::raw_pointer_cast(&(L.row_indices[0])),
29 *LCols = thrust::raw_pointer_cast(&(L.column_indices[0])),
30 *ARows = thrust::raw_pointer_cast(&(A.row_indices[0])),
31 *ACols = thrust::raw_pointer_cast(&(A.column_indices[0])),
32 *tags_r = thrust::raw_pointer_cast(&(tagsD[0]));
34 real *MVals = thrust::raw_pointer_cast(&(M.values[0])),
35 *LVals = thrust::raw_pointer_cast(&(L.values[0])),
36 *AVals = thrust::raw_pointer_cast(&(A.values[0]));
38 const int blockSize = 256,
40 dim3 dimGrid(gridSize, 1);
41 dim3 dimBlock(blockSize, 1);
43 kernels::generateADirectForcing <<<dimGrid, dimBlock>>> (ARows, ACols, AVals, MVals, LRows, LCols, LVals, ASize, alpha, tags_r);
double real
Is a float or a double depending on the machine precision.
A fully discrete formulation of the direct forcing method.
Declaration of the kernels to generate the matrix resulting from the implicit terms in the momentum e...