60 dx_d, dy_d, dz_d, h1_d, &
61 drdx_d, drdy_d, drdz_d, dsdx_d, dsdy_d, dsdz_d, &
62 dtdx_d, dtdy_d, dtdz_d, jacinv_d, w3_d, svv_h1_d, &
63 filter_r_d, filter_s_d, filter_t_d, nelv, lx) &
64 bind(c, name=
'hip_ax_helm_svv_one_sided_full')
65 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
66 type(c_ptr),
value :: au_d, av_d, aw_d
67 type(c_ptr),
value :: u_d, v_d, w_d
68 type(c_ptr),
value :: dx_d, dy_d, dz_d, h1_d
69 type(c_ptr),
value :: drdx_d, drdy_d, drdz_d
70 type(c_ptr),
value :: dsdx_d, dsdy_d, dsdz_d
71 type(c_ptr),
value :: dtdx_d, dtdy_d, dtdz_d
72 type(c_ptr),
value :: jacinv_d, w3_d, svv_h1_d
73 type(c_ptr),
value :: filter_r_d, filter_s_d, filter_t_d
74 integer(c_int) :: nelv, lx
114 av, aw, u, v, w, coef, msh, Xh)
116 type(
mesh_t),
intent(in) :: msh
117 type(
space_t),
intent(in) :: Xh
118 type(
coef_t),
intent(in) :: coef
119 real(kind=
rp),
intent(inout) :: au(xh%lx, xh%ly, xh%lz, msh%nelv)
120 real(kind=
rp),
intent(inout) :: av(xh%lx, xh%ly, xh%lz, msh%nelv)
121 real(kind=
rp),
intent(inout) :: aw(xh%lx, xh%ly, xh%lz, msh%nelv)
122 real(kind=
rp),
intent(in) :: u(xh%lx, xh%ly, xh%lz, msh%nelv)
123 real(kind=
rp),
intent(in) :: v(xh%lx, xh%ly, xh%lz, msh%nelv)
124 real(kind=
rp),
intent(in) :: w(xh%lx, xh%ly, xh%lz, msh%nelv)
125 type(c_ptr) :: au_d, av_d, aw_d, u_d, v_d, w_d
126 type(c_ptr) :: filter_r_d, filter_s_d, filter_t_d
135 if (index(this%svv%direction,
"r") > 0)
then
136 filter_r_d = this%svv%filter%fh_d
138 filter_r_d = this%svv%ident_d
141 if (index(this%svv%direction,
"s") > 0)
then
142 filter_s_d = this%svv%filter%fht_d
144 filter_s_d = this%svv%ident_d
147 if (index(this%svv%direction,
"t") > 0)
then
148 filter_t_d = this%svv%filter%fht_d
150 filter_t_d = this%svv%ident_d
155 xh%dx_d, xh%dy_d, xh%dz_d, coef%h1_d, &
156 coef%drdx_d, coef%drdy_d, coef%drdz_d, &
157 coef%dsdx_d, coef%dsdy_d, coef%dsdz_d, &
158 coef%dtdx_d, coef%dtdy_d, coef%dtdz_d, coef%jacinv_d, &
159 xh%w3_d, this%svv%h1_d, filter_r_d, filter_s_d, filter_t_d, &
163 xh%dx_d, xh%dy_d, xh%dz_d, coef%h1_d, &
164 coef%drdx_d, coef%drdy_d, coef%drdz_d, &
165 coef%dsdx_d, coef%dsdy_d, coef%dsdz_d, &
166 coef%dtdx_d, coef%dtdy_d, coef%dtdz_d, coef%jacinv_d, &
167 xh%w3_d, this%svv%h1_d, filter_r_d, filter_s_d, filter_t_d, &
170 call neko_error(
'OPENCL is not implemented for full SVV')
174 call device_addcol4(au_d, coef%h2_d, coef%B_d, u_d, coef%dof%size())
175 call device_addcol4(av_d, coef%h2_d, coef%B_d, v_d, coef%dof%size())
176 call device_addcol4(aw_d, coef%h2_d, coef%B_d, w_d, coef%dof%size())
void cuda_ax_helm_svv_one_sided_full(void *au, void *av, void *aw, void *u, void *v, void *w, void *dx, void *dy, void *dz, void *h1, void *drdx, void *drdy, void *drdz, void *dsdx, void *dsdy, void *dsdz, void *dtdx, void *dtdy, void *dtdz, void *jacinv, void *w3, void *h1_svv, void *filter_r, void *filter_s, void *filter_t, int *nelv, int *lx)