43  use, 
intrinsic :: iso_c_binding, only : c_ptr, c_int
 
   55          dx_d, dy_d, dz_d, dxt_d, dyt_d, dzt_d,&
 
   56          h1_d, drdx_d, drdy_d, drdz_d, &
 
   57          dsdx_d, dsdy_d, dsdz_d, &
 
   58          dtdx_d, dtdy_d, dtdz_d, jacinv_d, weight3_d, nelv, lx) &
 
   59          bind(c, name=
'hip_ax_helm_stress_vector')
 
   60       use, 
intrinsic :: iso_c_binding
 
   61       type(c_ptr), 
value :: au_d, av_d, aw_d
 
   62       type(c_ptr), 
value :: u_d, v_d, w_d
 
   63       type(c_ptr), 
value :: dx_d, dy_d, dz_d
 
   64       type(c_ptr), 
value :: dxt_d, dyt_d, dzt_d
 
   65       type(c_ptr), 
value :: h1_d
 
   66       type(c_ptr), 
value :: drdx_d, drdy_d, drdz_d
 
   67       type(c_ptr), 
value :: dsdx_d, dsdy_d, dsdz_d
 
   68       type(c_ptr), 
value :: dtdx_d, dtdy_d, dtdz_d
 
   69       type(c_ptr), 
value :: jacinv_d, weight3_d
 
   70       integer(c_int) :: nelv, lx
 
 
   76          h2_d, B_d, n) bind(c, name='hip_ax_helm_stress_vector_part2')
 
   77       use, 
intrinsic :: iso_c_binding
 
   78       type(c_ptr), 
value :: au_d, av_d, aw_d
 
   79       type(c_ptr), 
value :: u_d, v_d, w_d
 
   80       type(c_ptr), 
value :: h2_d, B_d
 
 
   88          dx_d, dy_d, dz_d, dxt_d, dyt_d, dzt_d,&
 
   89          h1_d, drdx_d, drdy_d, drdz_d, &
 
   90          dsdx_d, dsdy_d, dsdz_d, &
 
   91          dtdx_d, dtdy_d, dtdz_d, jacinv_d, weight3_d, nelv, lx) &
 
   92          bind(c, name=
'cuda_ax_helm_stress_vector')
 
   93       use, 
intrinsic :: iso_c_binding
 
   94       type(c_ptr), 
value :: au_d, av_d, aw_d
 
   95       type(c_ptr), 
value :: u_d, v_d, w_d
 
   96       type(c_ptr), 
value :: dx_d, dy_d, dz_d
 
   97       type(c_ptr), 
value :: dxt_d, dyt_d, dzt_d
 
   98       type(c_ptr), 
value :: h1_d
 
   99       type(c_ptr), 
value :: drdx_d, drdy_d, drdz_d
 
  100       type(c_ptr), 
value :: dsdx_d, dsdy_d, dsdz_d
 
  101       type(c_ptr), 
value :: dtdx_d, dtdy_d, dtdz_d
 
  102       type(c_ptr), 
value :: jacinv_d, weight3_d
 
  103       integer(c_int) :: nelv, lx
 
  109          h2_d, B_d, n) bind(c, name='cuda_ax_helm_stress_vector_part2')
 
  110       use, 
intrinsic :: iso_c_binding
 
  111       type(c_ptr), 
value :: au_d, av_d, aw_d
 
  112       type(c_ptr), 
value :: u_d, v_d, w_d
 
  113       type(c_ptr), 
value :: h2_d, B_d
 
  121          dx_d, dy_d, dz_d, dxt_d, dyt_d, dzt_d,&
 
  122          h1_d, drdx_d, drdy_d, drdz_d, &
 
  123          dsdx_d, dsdy_d, dsdz_d, &
 
  124          dtdx_d, dtdy_d, dtdz_d, jacinv_d, weight3_d, nelv, lx) &
 
  125          bind(c, name=
'opencl_ax_helm_stress_vector')
 
  126       use, 
intrinsic :: iso_c_binding
 
  127       type(c_ptr), 
value :: au_d, av_d, aw_d
 
  128       type(c_ptr), 
value :: u_d, v_d, w_d
 
  129       type(c_ptr), 
value :: dx_d, dy_d, dz_d
 
  130       type(c_ptr), 
value :: dxt_d, dyt_d, dzt_d
 
  131       type(c_ptr), 
value :: h1_d
 
  132       type(c_ptr), 
value :: drdx_d, drdy_d, drdz_d
 
  133       type(c_ptr), 
value :: dsdx_d, dsdy_d, dsdz_d
 
  134       type(c_ptr), 
value :: dtdx_d, dtdy_d, dtdz_d
 
  135       type(c_ptr), 
value :: jacinv_d, weight3_d
 
  136       integer(c_int) :: nelv, lx
 
  142          h2_d, B_d, n) bind(c, name='opencl_ax_helm_stress_vector_part2')
 
  143       use, 
intrinsic :: iso_c_binding
 
  144       type(c_ptr), 
value :: au_d, av_d, aw_d
 
  145       type(c_ptr), 
value :: u_d, v_d, w_d
 
  146       type(c_ptr), 
value :: h2_d, B_d
 
  155       u, v, w, coef, msh, Xh)
 
  157    type(
space_t), 
intent(in) :: Xh
 
  158    type(
mesh_t), 
intent(in) :: msh
 
  159    type(
coef_t), 
intent(in) :: coef
 
  160    real(kind=
rp), 
intent(inout) :: au(xh%lx, xh%ly, xh%lz, msh%nelv)
 
  161    real(kind=
rp), 
intent(inout) :: av(xh%lx, xh%ly, xh%lz, msh%nelv)
 
  162    real(kind=
rp), 
intent(inout) :: aw(xh%lx, xh%ly, xh%lz, msh%nelv)
 
  163    real(kind=
rp), 
intent(in) :: u(xh%lx, xh%ly, xh%lz, msh%nelv)
 
  164    real(kind=
rp), 
intent(in) :: v(xh%lx, xh%ly, xh%lz, msh%nelv)
 
  165    real(kind=
rp), 
intent(in) :: w(xh%lx, xh%ly, xh%lz, msh%nelv)
 
  166    type(c_ptr) :: u_d, v_d, w_d
 
  167    type(c_ptr) :: au_d, av_d, aw_d
 
  179         xh%dx_d, xh%dy_d, xh%dz_d, xh%dxt_d, xh%dyt_d, xh%dzt_d, coef%h1_d, &
 
  180         coef%drdx_d, coef%drdy_d, coef%drdz_d, &
 
  181         coef%dsdx_d, coef%dsdy_d, coef%dsdz_d, &
 
  182         coef%dtdx_d, coef%dtdy_d, coef%dtdz_d, &
 
  183         coef%jacinv_d, xh%w3_d, msh%nelv, xh%lx)
 
  186         xh%dx_d, xh%dy_d, xh%dz_d, xh%dxt_d, xh%dyt_d, xh%dzt_d, coef%h1_d, &
 
  187         coef%drdx_d, coef%drdy_d, coef%drdz_d, &
 
  188         coef%dsdx_d, coef%dsdy_d, coef%dsdz_d, &
 
  189         coef%dtdx_d, coef%dtdy_d, coef%dtdz_d, &
 
  190         coef%jacinv_d, xh%w3_d, msh%nelv, xh%lx)
 
  193         xh%dx_d, xh%dy_d, xh%dz_d, xh%dxt_d, xh%dyt_d, xh%dzt_d, coef%h1_d, &
 
  194         coef%drdx_d, coef%drdy_d, coef%drdz_d, &
 
  195         coef%dsdx_d, coef%dsdy_d, coef%dsdz_d, &
 
  196         coef%dtdx_d, coef%dtdy_d, coef%dtdz_d, &
 
  197         coef%jacinv_d, xh%w3_d, msh%nelv, xh%lx)
 
  203            coef%h2_d, coef%B_d, coef%dof%size())
 
  206            coef%h2_d, coef%B_d, coef%dof%size())
 
  209            coef%h2_d, coef%B_d, coef%dof%size())
 
 
void opencl_ax_helm_stress_vector(void *au, void *av, void *aw, void *u, void *v, void *w, void *dx, void *dy, void *dz, void *dxt, void *dyt, void *dzt, void *h1, void *drdx, void *drdy, void *drdz, void *dsdx, void *dsdy, void *dsdz, void *dtdx, void *dtdy, void *dtdz, void *jacinv, void *w3, int *nelv, int *lx)
 
void opencl_ax_helm_stress_vector_part2(void *au, void *av, void *aw, void *u, void *v, void *w, void *h2, void *B, int *n)
 
void cuda_ax_helm_stress_vector(void *au, void *av, void *aw, void *u, void *v, void *w, void *dx, void *dy, void *dz, void *dxt, void *dyt, void *dzt, void *h1, void *drdx, void *drdy, void *drdz, void *dsdx, void *dsdy, void *dsdz, void *dtdx, void *dtdy, void *dtdz, void *jacinv, void *w3, int *nelv, int *lx)
 
void cuda_ax_helm_stress_vector_part2(void *au, void *av, void *aw, void *u, void *v, void *w, void *h2, void *B, int *n)
 
Return the device pointer for an associated Fortran array.
 
subroutine ax_helm_full_device_compute_vector(this, au, av, aw, u, v, w, coef, msh, xh)
 
subroutine, public device_addcol4(a_d, b_d, c_d, d_d, n, strm)
Returns .
 
Device abstraction, common interface for various accelerators.
 
integer, parameter, public rp
Global precision used in computations.
 
Defines a function space.
 
Matrix-vector product for a Helmholtz problem.
 
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
 
The function space for the SEM solution fields.