diff options
Diffstat (limited to 'src/solve.cl')
-rw-r--r-- | src/solve.cl | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/solve.cl b/src/solve.cl new file mode 100644 index 0000000..125133a --- /dev/null +++ b/src/solve.cl @@ -0,0 +1,28 @@ +#pragma OPENCL EXTENSION all : enable + +__kernel void construct_matrix_polar(__global double *mat, + __global double *coeff_00, + __global double *coeff_10, + __global double *coeff_01, + __global double *coeff_11, + __global double *coeff_20, + __global double *coeff_02, + __global double *basis_00, + __global double *basis_10, + __global double *basis_01, + __global double *basis_11, + __global double *basis_20, + __global double *basis_02, + int nb_coeffs, int nb_colloc_points) +{ + unsigned int idx_coeff = get_global_id(0); + unsigned int idx_grid = get_global_id(1); + unsigned int idx = idx_grid + nb_colloc_points * idx_coeff; + + mat[idx] = coeff_00[idx_grid] * basis_00[idx] + + coeff_10[idx_grid] * basis_10[idx] + + coeff_01[idx_grid] * basis_01[idx] + + coeff_11[idx_grid] * basis_11[idx] + + coeff_20[idx_grid] * basis_20[idx] + + coeff_02[idx_grid] * basis_02[idx]; +} |