summaryrefslogtreecommitdiff
path: root/src/solve.cl
blob: 125133a9d7d75e5abec74fd75a1fc4b1186a3318 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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];
}