summaryrefslogtreecommitdiff
path: root/src/solve.cl
diff options
context:
space:
mode:
Diffstat (limited to 'src/solve.cl')
-rw-r--r--src/solve.cl28
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];
+}