47#include "schwarz_kernel.cl.h" 
   67      cl_kernel kernel = clCreateKernel(schwarz_program,                       \ 
   68                                        STR(schwarz_extrude_kernel_nx##NX),    \ 
   72      CL_CHECK(clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *) &arr1));     \ 
   73      CL_CHECK(clSetKernelArg(kernel, 1, sizeof(int), l1));                    \ 
   74      CL_CHECK(clSetKernelArg(kernel, 2, sizeof(real), f1));                   \ 
   75      CL_CHECK(clSetKernelArg(kernel, 3, sizeof(cl_mem), (void *) &arr2));     \ 
   76      CL_CHECK(clSetKernelArg(kernel, 4, sizeof(int), l2));                    \ 
   77      CL_CHECK(clSetKernelArg(kernel, 5, sizeof(real), f2));                   \ 
   79      CL_CHECK(clEnqueueNDRangeKernel(command_queue, kernel, 1, NULL,          \ 
   81                                      &local_item_size, 0, NULL, NULL));       \ 
 
  112                                    "schwarz_toext3d_kernel", &
err);
 
 
  135                                    "schwarz_toreg3d_kernel", &
err);
 
 
__global__ void dirichlet_apply_scalar_kernel(const int *__restrict__ msk, T *__restrict__ x, const T g, const int m)
 
void opencl_kernel_jit(const char *kernel, cl_program *program)
 
void opencl_schwarz_toext3d(void *a, void *b, int *nx, int *nel, cl_command_queue command_queue)
 
void opencl_schwarz_extrude(void *arr1, int *l1, real *f1, void *arr2, int *l2, real *f2, int *nx, int *nel, cl_command_queue command_queue)
 
void opencl_schwarz_toreg3d(void *b, void *a, int *nx, int *nel, cl_command_queue command_queue)