35#ifndef __BC_FACET_NORMAL_KERNEL__ 
   36#define __BC_FACET_NORMAL_KERNEL__ 
   43#define coef_normal_area_idx(i, j, k, l, lx, nf) \ 
   44  (((i) + (lx) * (((j) - 1) + (lx) * (((k) - 1) + (nf) * (((l) - 1))))) - 1) 
 
   52  const int idx2 = idx -1;
 
   53  index[3] = 
idx2/(lx * lx * lx) ;
 
   54  index[2] = (
idx2 - (lx*lx*lx)*index[3])/(lx * lx);
 
   55  index[1] = (
idx2 - (lx*lx*lx)*index[3] - (lx*lx) * index[2]) / lx;
 
   56  index[0] = (
idx2 - (lx*lx*lx)*index[3] - (lx*lx) * index[2]) - lx*index[1];
 
 
   87  for (
int i = (idx + 1); 
i < m; 
i += 
str) {
 
   88    const int k = (msk[
i] - 1);
 
   89    const int f = (facet[
i]);
 
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ w
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ u
 
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ v
 
__global__ void const T *__restrict__ x
 
__global__ void dirichlet_apply_scalar_kernel(const int *__restrict__ msk, T *__restrict__ x, const T g, const int m)
 
__device__ void nonlinear_index(const int idx, const int lx, int *index)
 
__global__ void facet_normal_apply_surfvec_kernel(const int *__restrict__ msk, const int *__restrict__ facet, T *__restrict__ x, T *__restrict__ y, T *__restrict__ z, const T *__restrict__ u, const T *__restrict__ v, const T *__restrict__ w, const T *__restrict__ nx, const T *__restrict__ ny, const T *__restrict__ nz, const T *__restrict__ area, const int lx, const int m)
 
#define coef_normal_area_idx(i, j, k, l, lx, nf)