36 use,
intrinsic :: iso_c_binding, only : c_ptr
44 ind_r_d, ind_s_d, ind_t_d, ind_e_d, &
45 n_x_d, n_y_d, n_z_d, nu_d, h_d, &
46 tau_x_d, tau_y_d, tau_z_d, n_nodes, lx, &
48 bind(c, name =
'hip_spalding_compute')
49 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
52 type(c_ptr),
value :: u_d, v_d, w_d
53 type(c_ptr),
value :: ind_r_d, ind_s_d, ind_t_d, ind_e_d
54 type(c_ptr),
value :: n_x_d, n_y_d, n_z_d, h_d, nu_d
55 real(c_rp) :: kappa, B
56 type(c_ptr),
value :: tau_x_d, tau_y_d, tau_z_d
57 integer(c_int) :: n_nodes, lx, tstep
63 ind_r_d, ind_s_d, ind_t_d, ind_e_d, &
64 n_x_d, n_y_d, n_z_d, nu_d, h_d, &
65 tau_x_d, tau_y_d, tau_z_d, n_nodes, lx, &
67 bind(c, name =
'cuda_spalding_compute')
68 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
71 type(c_ptr),
value :: u_d, v_d, w_d
72 type(c_ptr),
value :: ind_r_d, ind_s_d, ind_t_d, ind_e_d
73 type(c_ptr),
value :: n_x_d, n_y_d, n_z_d, h_d, nu_d
74 real(c_rp) :: kappa, B
75 type(c_ptr),
value :: tau_x_d, tau_y_d, tau_z_d
76 integer(c_int) :: n_nodes, lx, tstep
88 ind_r_d, ind_s_d, ind_t_d, ind_e_d, &
89 n_x_d, n_y_d, n_z_d, nu_d, h_d, tau_x_d, tau_y_d, tau_z_d, &
90 n_nodes, lx, kappa, B, tstep)
91 integer,
intent(in) :: n_nodes, lx, tstep
92 type(c_ptr),
intent(in) :: u_d, v_d, w_d
93 type(c_ptr),
intent(in) :: ind_r_d, ind_s_d, ind_t_d, ind_e_d
94 type(c_ptr),
intent(in) :: n_x_d, n_y_d, n_z_d, h_d, nu_d
95 type(c_ptr),
intent(inout) :: tau_x_d, tau_y_d, tau_z_d
96 real(kind=rp),
intent(in) :: kappa, b
100 ind_r_d, ind_s_d, ind_t_d, ind_e_d, &
101 n_x_d, n_y_d, n_z_d, nu_d, h_d, &
102 tau_x_d, tau_y_d, tau_z_d, n_nodes, lx, kappa, b, tstep)
105 ind_r_d, ind_s_d, ind_t_d, ind_e_d, &
106 n_x_d, n_y_d, n_z_d, nu_d, h_d, &
107 tau_x_d, tau_y_d, tau_z_d, n_nodes, lx, kappa, b, tstep)
109 call neko_error(
"OPENCL is not implemented for Spalding's model")
111 call neko_error(
'No device backend configured')
integer, parameter, public c_rp
integer, parameter, public rp
Global precision used in computations.
Implements the device kernel for the spalding_t type.
subroutine, public spalding_compute_device(u_d, v_d, w_d, ind_r_d, ind_s_d, ind_t_d, ind_e_d, n_x_d, n_y_d, n_z_d, nu_d, h_d, tau_x_d, tau_y_d, tau_z_d, n_nodes, lx, kappa, b, tstep)
Compute the wall shear stress on device using Spalding's model.
void cuda_spalding_compute(void *u_d, void *v_d, void *w_d, void *ind_r_d, void *ind_s_d, void *ind_t_d, void *ind_e_d, void *n_x_d, void *n_y_d, void *n_z_d, void *nu_d, void *h_d, void *tau_x_d, void *tau_y_d, void *tau_z_d, int *n_nodes, int *lx, real *kappa, real *B, int *tstep)