37#include <hip/hip_runtime.h>
44template<
typename T,
typename xT, const
int LX, const
int CHUNKS>
100 for (
int ii = 1;
ii<
LX-1;
ii += 1) {
116 for(
int l = 0; l <
LX; l++){
132 const int j =
jk -
k;
137 for(
int l = 0; l <
LX; l++){
152 const int j =
jk -
k;
153 const int ij2 =
i +
j;
157 for(
int l = 0; l <
LX; l++){
174 for(
int l = 0; l <
LX; l++){
190 const int j =
jk -
k;
195 for(
int l = 0; l <
LX; l++){
211 const int j =
jk -
k;
215 const int ij2 =
i +
j;
216 for(
int l = 0; l <
LX; l++){
233 for(
int l = 0; l <
LX; l++){
249 const int j =
jk -
k;
254 for(
int l = 0; l <
LX; l++){
270 const int j =
jk -
k;
274 const int ij2 =
i +
j;
275 for(
int l = 0; l <
LX; l++){
292 for(
int l = 0; l <
LX; l++){
308 const int j =
jk -
k;
313 for(
int l = 0; l <
LX; l++){
329 for(
int l = 0; l <
LX; l++){
350 jacdet = (dxdr * dyds * dzdt)
351 + (dxdt * dydr * dzds)
352 + (dxds * dydt * dzdr)
353 - (dxdr * dydt * dzds)
354 - (dxds * dydr * dzdt)
355 - (dxdt * dyds * dzdr);
360 drdx =(dyds*dzdt - dydt*dzds);
361 drdy =(dxdt*dzds - dxds*dzdt);
362 drdz =(dxds*dydt - dxdt*dyds);
363 dsdx =(dydt*dzdr - dydr*dzdt);
364 dsdy =(dxdr*dzdt - dxdt*dzdr);
365 dsdz =(dxdt*dydr - dxdr*dydt);
366 dtdx =(dydr*dzds - dyds*dzdr);
367 dtdy =(dxds*dzdr - dxdr*dzds);
368 dtdz =(dxdr*dyds - dxds*dydr);
402 void *x_hat,
void *y_hat,
void *z_hat,
411#define RST_CASE(LX) \
413 hipLaunchKernelGGL( \
414 HIP_KERNEL_NAME(find_rst_legendre_kernel<real,real_xp, LX, 128>), \
415 nblcks, nthrds, 0, stream, \
416 (real *) rst,(real *) pt_x, (real *) pt_y, (real *) pt_z, \
417 (real *) x_hat, (real *) y_hat, (real *) z_hat, \
418 (real *) resx, (real *) resy, (real *) resz, (int *) el_ids, \
419 *n_pt, *tol, (real *) conv_pts); \
420 HIP_CHECK(hipGetLastError()); \
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ drdy
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ drdz
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dsdz
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dsdy
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dtdy
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ drdx
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dtdz
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dsdx
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dtdx
__global__ void dirichlet_apply_scalar_kernel(const int *__restrict__ msk, T *__restrict__ x, const T g, const int m)
void hip_find_rst_legendre(void *rst, void *pt_x, void *pt_y, void *pt_z, void *x_hat, void *y_hat, void *z_hat, void *resx, void *resy, void *resz, int *lx, void *el_ids, int *n_pt, real *tol, void *conv_pts)
__global__ void find_rst_legendre_kernel(T *__restrict__ rst, const T *pt_x, const T *pt_y, const T *pt_z, const T *x_hat, const T *y_hat, const T *z_hat, T *__restrict__ resx, T *__restrict__ resy, T *__restrict__ resz, const int *el_ids, const int n_pt, T tol, T *__restrict__ conv_pts)