36 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
40 use mpi_f08,
only: mpi_sum, mpi_in_place, mpi_allreduce
48 dTdx_d, dTdy_d, dTdz_d, &
49 a11_d, a12_d, a13_d, &
50 a21_d, a22_d, a23_d, &
51 a31_d, a32_d, a33_d, &
52 delta_d, nut_d, temperature_alphat, TKE_alphat, TKE_source, &
53 c_k, T0, g1, g2, g3, &
54 eps, n)
bind(C,name="hip_deardorff_nut_compute")
55 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
57 type(c_ptr),
value :: TKE_d, &
58 dTdx_d, dTdy_d, dTdz_d, &
59 a11_d, a12_d, a13_d, &
60 a21_d, a22_d, a23_d, &
61 a31_d, a32_d, a33_d, &
62 delta_d, nut_d, temperature_alphat, &
63 TKE_alphat, TKE_source
65 real(c_rp) :: c_k, T0, g1, g2, g3, eps
71 dTdx_d, dTdy_d, dTdz_d, &
72 a11_d, a12_d, a13_d, &
73 a21_d, a22_d, a23_d, &
74 a31_d, a32_d, a33_d, &
75 delta_d, nut_d, temperature_alphat, TKE_alphat, TKE_source, &
76 c_k, T0, g1, g2, g3, &
78 bind(c, name =
'cuda_deardorff_nut_compute')
79 use,
intrinsic :: iso_c_binding, only: c_ptr, c_int
81 type(c_ptr),
value :: TKE_d, &
82 dTdx_d, dTdy_d, dTdz_d, &
83 a11_d, a12_d, a13_d, &
84 a21_d, a22_d, a23_d, &
85 a31_d, a32_d, a33_d, &
86 delta_d, nut_d, temperature_alphat, &
87 TKE_alphat, TKE_source
89 real(c_rp) :: c_k, T0, g1, g2, g3, eps
124 dTdx_d, dTdy_d, dTdz_d, a11_d, a12_d, a13_d, &
125 a21_d, a22_d, a23_d, &
126 a31_d, a32_d, a33_d, &
128 nut_d, temperature_alphat, TKE_alphat, TKE_source, &
130 type(c_ptr) :: tke_d, dtdx_d, dtdy_d, dtdz_d, &
131 a11_d, a12_d, a13_d, &
132 a21_d, a22_d, a23_d, &
133 a31_d, a32_d, a33_d, &
134 delta_d, nut_d, temperature_alphat, tke_alphat, tke_source
136 real(kind=
rp) :: c_k, t0, g(3), eps
139 dtdx_d, dtdy_d, dtdz_d, &
140 a11_d, a12_d, a13_d, &
141 a21_d, a22_d, a23_d, &
142 a31_d, a32_d, a33_d, &
143 delta_d, nut_d, temperature_alphat, tke_alphat, tke_source, &
144 c_k, t0, g(1), g(2), g(3), eps, n)
147 dtdx_d, dtdy_d, dtdz_d, &
148 a11_d, a12_d, a13_d, &
149 a21_d, a22_d, a23_d, &
150 a31_d, a32_d, a33_d, &
151 delta_d, nut_d, temperature_alphat, tke_alphat, tke_source, &
152 c_k, t0, g(1), g(2), g(3), eps, n)
154 call neko_error(
'opencl backend is not supported for device_deardorff_nut')
156 call neko_error(
'no device backend configured')
void cuda_deardorff_nut_compute(void *TKE, void *dTdx, void *dTdy, void *dTdz, void *a11, void *a12, void *a13, void *a21, void *a22, void *a23, void *a31, void *a32, void *a33, void *delta, void *nut, void *temperature_alphat, void *TKE_alphat, void *TKE_source, real *c_k, real *T0, real *g1, real *g2, real *g3, real *eps, int *n)
type(mpi_datatype), public mpi_real_precision
MPI type for working precision of REAL types.
integer, public pe_size
MPI size of communicator.
type(mpi_comm), public neko_comm
MPI communicator.
Device kernel wrapper for computing Deardorff SGS quantities.
subroutine, public device_deardorff_nut_compute(tke_d, dtdx_d, dtdy_d, dtdz_d, a11_d, a12_d, a13_d, a21_d, a22_d, a23_d, a31_d, a32_d, a33_d, delta_d, nut_d, temperature_alphat, tke_alphat, tke_source, c_k, t0, g, eps, n)
Compute Deardorff SGS quantities on the device backend.
integer, parameter, public c_rp
integer, parameter, public rp
Global precision used in computations.