35 use,
intrinsic :: iso_c_binding, only : c_ptr, c_int
45 gamma, p_d, rho_d, n) &
46 bind(c, name =
'hip_compute_max_wave_speed')
47 use,
intrinsic :: iso_c_binding
49 type(c_ptr),
value :: max_wave_speed_d, u_d, v_d, w_d, p_d, rho_d
57 bind(c, name =
'hip_compute_entropy')
58 use,
intrinsic :: iso_c_binding
60 type(c_ptr),
value :: S_d, p_d, rho_d
68 m_y_d, m_z_d, rho_d, n) &
69 bind(c, name =
'hip_update_uvw')
70 use,
intrinsic :: iso_c_binding
72 type(c_ptr),
value :: u_d, v_d, w_d, m_x_d, m_y_d, m_z_d, rho_d
79 p_d, ruvw_d, u_d, v_d, w_d, E_d, rho_d, gamma, n) &
80 bind(c, name =
'hip_update_mxyz_p_ruvw')
81 use,
intrinsic :: iso_c_binding
83 type(c_ptr),
value :: u_d, v_d, w_d, m_x_d, m_y_d, m_z_d, rho_d
84 type(c_ptr),
value :: p_d, ruvw_d, E_d
92 bind(c, name =
'hip_update_e')
93 use,
intrinsic :: iso_c_binding
95 type(c_ptr),
value :: p_d, E_d, ruvw_d
103 bind(c, name =
'hip_update_temperature')
104 use,
intrinsic :: iso_c_binding
106 type(c_ptr),
value :: T_d, p_d, rho_d
114 dudx_d, dudy_d, dudz_d, dvdx_d, dvdy_d, dvdz_d, &
115 dwdx_d, dwdy_d, dwdz_d, mu_d, n) &
116 bind(c, name =
'hip_ns_flux_prepare')
117 use,
intrinsic :: iso_c_binding
118 type(c_ptr),
value :: div_flux_d, dissipation_d, h1_d
119 type(c_ptr),
value :: dudx_d, dudy_d, dudz_d
120 type(c_ptr),
value :: dvdx_d, dvdy_d, dvdz_d
121 type(c_ptr),
value :: dwdx_d, dwdy_d, dwdz_d, mu_d
128 visc_E_d, f_x_d, f_y_d, f_z_d, opgrad_x_d, opgrad_y_d, &
129 opgrad_z_d, u_d, v_d, w_d, B_d, dissipation_d, n) &
130 bind(c, name =
'hip_ns_flux_finalize')
131 use,
intrinsic :: iso_c_binding
132 type(c_ptr),
value :: visc_m_x_d, visc_m_y_d, visc_m_z_d, visc_E_d
133 type(c_ptr),
value :: f_x_d, f_y_d, f_z_d
134 type(c_ptr),
value :: opgrad_x_d, opgrad_y_d, opgrad_z_d
135 type(c_ptr),
value :: u_d, v_d, w_d, B_d, dissipation_d
142 kappa_d, gamma, n) bind(c, name = 'hip_ns_flux_temperature')
143 use,
intrinsic :: iso_c_binding
145 type(c_ptr),
value :: div_flux_d, h1_d, p_d, rho_d, kappa_d
154 gamma, p_d, rho_d, n) &
155 bind(c, name =
'cuda_compute_max_wave_speed')
156 use,
intrinsic :: iso_c_binding
158 type(c_ptr),
value :: max_wave_speed_d, u_d, v_d, w_d, p_d, rho_d
166 bind(c, name =
'cuda_compute_entropy')
167 use,
intrinsic :: iso_c_binding
169 type(c_ptr),
value :: S_d, p_d, rho_d
177 m_y_d, m_z_d, rho_d, n) &
178 bind(c, name =
'cuda_update_uvw')
179 use,
intrinsic :: iso_c_binding
181 type(c_ptr),
value :: u_d, v_d, w_d, m_x_d, m_y_d, m_z_d, rho_d
188 p_d, ruvw_d, u_d, v_d, w_d, E_d, rho_d, gamma, n) &
189 bind(c, name =
'cuda_update_mxyz_p_ruvw')
190 use,
intrinsic :: iso_c_binding
192 type(c_ptr),
value :: u_d, v_d, w_d, m_x_d, m_y_d, m_z_d, rho_d
193 type(c_ptr),
value :: p_d, ruvw_d, E_d
201 bind(c, name =
'cuda_update_e')
202 use,
intrinsic :: iso_c_binding
204 type(c_ptr),
value :: p_d, E_d, ruvw_d
212 bind(c, name =
'cuda_update_temperature')
213 use,
intrinsic :: iso_c_binding
215 type(c_ptr),
value :: T_d, p_d, rho_d
223 dudx_d, dudy_d, dudz_d, dvdx_d, dvdy_d, dvdz_d, &
224 dwdx_d, dwdy_d, dwdz_d, mu_d, n) &
225 bind(c, name =
'cuda_ns_flux_prepare')
226 use,
intrinsic :: iso_c_binding
227 type(c_ptr),
value :: div_flux_d, dissipation_d, h1_d
228 type(c_ptr),
value :: dudx_d, dudy_d, dudz_d
229 type(c_ptr),
value :: dvdx_d, dvdy_d, dvdz_d
230 type(c_ptr),
value :: dwdx_d, dwdy_d, dwdz_d, mu_d
237 visc_E_d, f_x_d, f_y_d, f_z_d, opgrad_x_d, opgrad_y_d, &
238 opgrad_z_d, u_d, v_d, w_d, B_d, dissipation_d, n) &
239 bind(c, name =
'cuda_ns_flux_finalize')
240 use,
intrinsic :: iso_c_binding
241 type(c_ptr),
value :: visc_m_x_d, visc_m_y_d, visc_m_z_d, visc_E_d
242 type(c_ptr),
value :: f_x_d, f_y_d, f_z_d
243 type(c_ptr),
value :: opgrad_x_d, opgrad_y_d, opgrad_z_d
244 type(c_ptr),
value :: u_d, v_d, w_d, B_d, dissipation_d
251 kappa_d, gamma, n) bind(c, name = 'cuda_ns_flux_temperature')
252 use,
intrinsic :: iso_c_binding
254 type(c_ptr),
value :: div_flux_d, h1_d, p_d, rho_d, kappa_d
263 gamma, p_d, rho_d, n) &
264 bind(c, name =
'opencl_compute_max_wave_speed')
265 use,
intrinsic :: iso_c_binding
267 type(c_ptr),
value :: max_wave_speed_d, u_d, v_d, w_d, p_d, rho_d
268 real(c_rp),
value :: gamma
269 integer(c_int),
value :: n
275 bind(c, name =
'opencl_compute_entropy')
276 use,
intrinsic :: iso_c_binding
278 type(c_ptr),
value :: S_d, p_d, rho_d
279 real(c_rp),
value :: gamma
280 integer(c_int),
value :: n
286 m_y_d, m_z_d, rho_d, n) &
287 bind(c, name =
'opencl_update_uvw')
288 use,
intrinsic :: iso_c_binding
290 type(c_ptr),
value :: u_d, v_d, w_d, m_x_d, m_y_d, m_z_d, rho_d
291 integer(c_int),
value :: n
297 p_d, ruvw_d, u_d, v_d, w_d, E_d, rho_d, gamma, n) &
298 bind(c, name =
'opencl_update_mxyz_p_ruvw')
299 use,
intrinsic :: iso_c_binding
301 type(c_ptr),
value :: u_d, v_d, w_d, m_x_d, m_y_d, m_z_d, rho_d
302 type(c_ptr),
value :: p_d, ruvw_d, E_d
303 real(c_rp),
value :: gamma
304 integer(c_int),
value :: n
310 bind(c, name =
'opencl_update_e')
311 use,
intrinsic :: iso_c_binding
313 type(c_ptr),
value :: p_d, E_d, ruvw_d
314 real(c_rp),
value :: gamma
315 integer(c_int),
value :: n
320 bind(c, name =
'opencl_update_temperature')
321 use,
intrinsic :: iso_c_binding
323 type(c_ptr),
value :: T_d, p_d, rho_d
324 real(c_rp),
value :: gamma
325 integer(c_int),
value :: n
331 dudx_d, dudy_d, dudz_d, dvdx_d, dvdy_d, dvdz_d, &
332 dwdx_d, dwdy_d, dwdz_d, mu_d, n) &
333 bind(c, name =
'opencl_ns_flux_prepare')
334 use,
intrinsic :: iso_c_binding
335 type(c_ptr),
value :: div_flux_d, dissipation_d, h1_d
336 type(c_ptr),
value :: dudx_d, dudy_d, dudz_d
337 type(c_ptr),
value :: dvdx_d, dvdy_d, dvdz_d
338 type(c_ptr),
value :: dwdx_d, dwdy_d, dwdz_d, mu_d
339 integer(c_int),
value :: n
345 visc_E_d, f_x_d, f_y_d, f_z_d, opgrad_x_d, opgrad_y_d, &
346 opgrad_z_d, u_d, v_d, w_d, B_d, dissipation_d, n) &
347 bind(c, name =
'opencl_ns_flux_finalize')
348 use,
intrinsic :: iso_c_binding
349 type(c_ptr),
value :: visc_m_x_d, visc_m_y_d, visc_m_z_d, visc_E_d
350 type(c_ptr),
value :: f_x_d, f_y_d, f_z_d
351 type(c_ptr),
value :: opgrad_x_d, opgrad_y_d, opgrad_z_d
352 type(c_ptr),
value :: u_d, v_d, w_d, B_d, dissipation_d
353 integer(c_int),
value :: n
359 kappa_d, gamma, n) bind(c, name = 'opencl_ns_flux_temperature')
360 use,
intrinsic :: iso_c_binding
362 type(c_ptr),
value :: div_flux_d, h1_d, p_d, rho_d, kappa_d
363 real(c_rp),
value :: gamma
364 integer(c_int),
value :: n
369 subroutine metal_compute_max_wave_speed(max_wave_speed_d, u_d, v_d, w_d, &
370 gamma, p_d, rho_d, n) &
371 bind(c, name =
'metal_compute_max_wave_speed')
372 use,
intrinsic :: iso_c_binding
374 type(c_ptr),
value :: max_wave_speed_d, u_d, v_d, w_d, p_d, rho_d
375 real(c_rp),
value :: gamma
376 integer(c_int),
value :: n
377 end subroutine metal_compute_max_wave_speed
381 subroutine metal_compute_entropy(S_d, p_d, rho_d, gamma, n) &
382 bind(c, name =
'metal_compute_entropy')
383 use,
intrinsic :: iso_c_binding
385 type(c_ptr),
value :: S_d, p_d, rho_d
386 real(c_rp),
value :: gamma
387 integer(c_int),
value :: n
388 end subroutine metal_compute_entropy
392 subroutine metal_update_uvw(u_d, v_d, w_d, m_x_d, &
393 m_y_d, m_z_d, rho_d, n) &
394 bind(c, name =
'metal_update_uvw')
395 use,
intrinsic :: iso_c_binding
397 type(c_ptr),
value :: u_d, v_d, w_d, m_x_d, m_y_d, m_z_d, rho_d
398 integer(c_int),
value :: n
399 end subroutine metal_update_uvw
403 subroutine metal_update_mxyz_p_ruvw(m_x_d, m_y_d, m_z_d, &
404 p_d, ruvw_d, u_d, v_d, w_d, E_d, rho_d, gamma, n) &
405 bind(c, name =
'metal_update_mxyz_p_ruvw')
406 use,
intrinsic :: iso_c_binding
408 type(c_ptr),
value :: u_d, v_d, w_d, m_x_d, m_y_d, m_z_d, rho_d
409 type(c_ptr),
value :: p_d, ruvw_d, E_d
410 real(c_rp),
value :: gamma
411 integer(c_int),
value :: n
412 end subroutine metal_update_mxyz_p_ruvw
416 subroutine metal_update_e(E_d, p_d, ruvw_d, gamma, n) &
417 bind(c, name =
'metal_update_e')
418 use,
intrinsic :: iso_c_binding
420 type(c_ptr),
value :: p_d, E_d, ruvw_d
421 real(c_rp),
value :: gamma
422 integer(c_int),
value :: n
423 end subroutine metal_update_e
427 subroutine metal_update_temperature(T_d, p_d, rho_d, gamma, n) &
428 bind(c, name =
'metal_update_temperature')
429 use,
intrinsic :: iso_c_binding
431 type(c_ptr),
value :: T_d, p_d, rho_d
432 real(c_rp),
value :: gamma
433 integer(c_int),
value :: n
434 end subroutine metal_update_temperature
438 subroutine metal_ns_flux_prepare(div_flux_d, dissipation_d, h1_d, &
439 dudx_d, dudy_d, dudz_d, dvdx_d, dvdy_d, dvdz_d, &
440 dwdx_d, dwdy_d, dwdz_d, mu_d, n) &
441 bind(c, name =
'metal_ns_flux_prepare')
442 use,
intrinsic :: iso_c_binding
443 type(c_ptr),
value :: div_flux_d, dissipation_d, h1_d
444 type(c_ptr),
value :: dudx_d, dudy_d, dudz_d
445 type(c_ptr),
value :: dvdx_d, dvdy_d, dvdz_d
446 type(c_ptr),
value :: dwdx_d, dwdy_d, dwdz_d, mu_d
447 integer(c_int),
value :: n
448 end subroutine metal_ns_flux_prepare
452 subroutine metal_ns_flux_finalize(visc_m_x_d, visc_m_y_d, visc_m_z_d, &
453 visc_E_d, f_x_d, f_y_d, f_z_d, opgrad_x_d, opgrad_y_d, &
454 opgrad_z_d, u_d, v_d, w_d, B_d, dissipation_d, n) &
455 bind(c, name =
'metal_ns_flux_finalize')
456 use,
intrinsic :: iso_c_binding
457 type(c_ptr),
value :: visc_m_x_d, visc_m_y_d, visc_m_z_d, visc_E_d
458 type(c_ptr),
value :: f_x_d, f_y_d, f_z_d
459 type(c_ptr),
value :: opgrad_x_d, opgrad_y_d, opgrad_z_d
460 type(c_ptr),
value :: u_d, v_d, w_d, B_d, dissipation_d
461 integer(c_int),
value :: n
462 end subroutine metal_ns_flux_finalize
466 subroutine metal_ns_flux_temperature(div_flux_d, h1_d, p_d, rho_d, &
467 kappa_d, gamma, n) bind(c, name = 'metal_ns_flux_temperature')
468 use,
intrinsic :: iso_c_binding
470 type(c_ptr),
value :: div_flux_d, h1_d, p_d, rho_d, kappa_d
471 real(c_rp),
value :: gamma
472 integer(c_int),
value :: n
473 end subroutine metal_ns_flux_temperature
491 u, v, w, gamma, p, rho, n)
492 integer,
intent(in) :: n
493 real(kind=
rp),
intent(in) :: gamma
494 type(
field_t),
intent(inout) :: max_wave_speed
495 type(
field_t),
intent(in) :: u, v, w, p, rho
499 w%x_d, gamma, p%x_d, rho%x_d, n)
502 w%x_d, gamma, p%x_d, rho%x_d, n)
505 w%x_d, gamma, p%x_d, rho%x_d, n)
507 call metal_compute_max_wave_speed(max_wave_speed%x_d, u%x_d, v%x_d, &
508 w%x_d, gamma, p%x_d, rho%x_d, n)
510 call neko_error(
'No device backend configured')
516 integer,
intent(in) :: n
517 real(kind=
rp),
intent(in) :: gamma
518 type(
field_t),
intent(inout) :: s
519 type(
field_t),
intent(in) :: p, rho
528 call metal_compute_entropy(s%x_d, p%x_d, rho%x_d, gamma, n)
530 call neko_error(
'No device backend configured')
536 m_x_d, m_y_d, m_z_d, rho_d, n)
537 type(c_ptr),
intent(inout) :: u_d, v_d, w_d
538 type(c_ptr),
intent(in) :: m_x_d, m_y_d, m_z_d, rho_d
539 integer,
intent(in) :: n
549 call metal_update_uvw(u_d, v_d, w_d, m_x_d, m_y_d, m_z_d, rho_d, n)
551 call neko_error(
'No device backend configured')
558 p_d, ruvw_d, u_d, v_d, w_d, E_d, rho_d, gamma, n)
559 integer,
intent(in) :: n
560 type(c_ptr),
intent(inout) :: m_x_d, m_y_d, m_z_d, p_d, ruvw_d
561 type(c_ptr),
intent(in) :: u_d, v_d, w_d, e_d, rho_d
562 real(kind=
rp),
intent(in) :: gamma
567 p_d, ruvw_d, u_d, v_d, w_d, e_d, rho_d, gamma, n)
570 p_d, ruvw_d, u_d, v_d, w_d, e_d, rho_d, gamma, n)
573 p_d, ruvw_d, u_d, v_d, w_d, e_d, rho_d, gamma, n)
575 call metal_update_mxyz_p_ruvw(m_x_d, m_y_d, m_z_d, &
576 p_d, ruvw_d, u_d, v_d, w_d, e_d, rho_d, gamma, n)
578 call neko_error(
'No device backend configured')
585 integer,
intent(in) :: n
586 type(c_ptr),
intent(inout) :: e_d, p_d
588 type(c_ptr),
intent(in) :: ruvw_d
589 real(kind=
rp),
intent(in) :: gamma
598 call metal_update_e(e_d, p_d, ruvw_d, gamma, n)
600 call neko_error(
'No device backend configured')
608 integer,
intent(in) :: n
609 type(c_ptr),
intent(inout) :: t_d
610 type(c_ptr),
intent(in) :: p_d, rho_d
611 real(kind=
rp),
intent(in) :: gamma
620 call metal_update_temperature(t_d, p_d, rho_d, gamma, n)
622 call neko_error(
'No device backend configured')
629 dissipation_d, h1_d, dudx_d, dudy_d, dudz_d, dvdx_d, dvdy_d, &
630 dvdz_d, dwdx_d, dwdy_d, dwdz_d, mu_d, n)
631 integer,
intent(in) :: n
632 type(c_ptr),
intent(inout) :: div_flux_d, dissipation_d, h1_d
633 type(c_ptr),
intent(in) :: dudx_d, dudy_d, dudz_d
634 type(c_ptr),
intent(in) :: dvdx_d, dvdy_d, dvdz_d
635 type(c_ptr),
intent(in) :: dwdx_d, dwdy_d, dwdz_d, mu_d
639 dudy_d, dudz_d, dvdx_d, dvdy_d, dvdz_d, dwdx_d, dwdy_d, dwdz_d, &
643 dudy_d, dudz_d, dvdx_d, dvdy_d, dvdz_d, dwdx_d, dwdy_d, dwdz_d, &
647 dudy_d, dudz_d, dvdx_d, dvdy_d, dvdz_d, dwdx_d, dwdy_d, dwdz_d, &
650 call metal_ns_flux_prepare(div_flux_d, dissipation_d, h1_d, dudx_d, &
651 dudy_d, dudz_d, dvdx_d, dvdy_d, dvdz_d, dwdx_d, dwdy_d, dwdz_d, &
654 call neko_error(
'No device backend configured')
661 visc_m_z_d, visc_E_d, f_x_d, f_y_d, f_z_d, opgrad_x_d, opgrad_y_d, &
662 opgrad_z_d, u_d, v_d, w_d, B_d, dissipation_d, n)
663 integer,
intent(in) :: n
664 type(c_ptr),
intent(inout) :: visc_m_x_d, visc_m_y_d, visc_m_z_d
665 type(c_ptr),
intent(inout) :: visc_e_d, f_x_d, f_y_d, f_z_d
666 type(c_ptr),
intent(in) :: opgrad_x_d, opgrad_y_d, opgrad_z_d
667 type(c_ptr),
intent(in) :: u_d, v_d, w_d, b_d, dissipation_d
671 visc_e_d, f_x_d, f_y_d, f_z_d, opgrad_x_d, opgrad_y_d, &
672 opgrad_z_d, u_d, v_d, w_d, b_d, dissipation_d, n)
675 visc_e_d, f_x_d, f_y_d, f_z_d, opgrad_x_d, opgrad_y_d, &
676 opgrad_z_d, u_d, v_d, w_d, b_d, dissipation_d, n)
679 visc_e_d, f_x_d, f_y_d, f_z_d, opgrad_x_d, opgrad_y_d, &
680 opgrad_z_d, u_d, v_d, w_d, b_d, dissipation_d, n)
682 call metal_ns_flux_finalize(visc_m_x_d, visc_m_y_d, visc_m_z_d, &
683 visc_e_d, f_x_d, f_y_d, f_z_d, opgrad_x_d, opgrad_y_d, &
684 opgrad_z_d, u_d, v_d, w_d, b_d, dissipation_d, n)
686 call neko_error(
'No device backend configured')
693 p_d, rho_d, kappa_d, gamma, n)
694 integer,
intent(in) :: n
695 type(c_ptr),
intent(inout) :: div_flux_d, h1_d
696 type(c_ptr),
intent(in) :: p_d, rho_d, kappa_d
697 real(kind=
rp),
intent(in) :: gamma
709 call metal_ns_flux_temperature(div_flux_d, h1_d, p_d, rho_d, kappa_d, &
712 call neko_error(
'No device backend configured')
void opencl_compute_entropy(void *S_d, void *p_d, void *rho_d, real gamma, int n)
void cuda_compute_entropy(void *S_d, void *p_d, void *rho_d, real *gamma, int *n)
void opencl_compute_max_wave_speed(void *max_wave_speed, void *u, void *v, void *w, real gamma, void *p, void *rho, int n)
void cuda_compute_max_wave_speed(void *max_wave_speed_d, void *u_d, void *v_d, void *w_d, real *gamma, void *p_d, void *rho_d, int *n)
void opencl_update_uvw(void *u, void *v, void *w, void *m_x, void *m_y, void *m_z, void *rho, int n)
void opencl_ns_flux_prepare(void *div_flux, void *dissipation, void *h1, void *dudx, void *dudy, void *dudz, void *dvdx, void *dvdy, void *dvdz, void *dwdx, void *dwdy, void *dwdz, void *mu, int n)
void opencl_update_temperature(void *T, void *p, void *rho, real gamma, int n)
void opencl_update_e(void *E, void *p, void *ruvw, real gamma, int n)
void opencl_ns_flux_temperature(void *div_flux, void *h1, void *p, void *rho, void *kappa, real gamma, int n)
void opencl_ns_flux_finalize(void *visc_m_x, void *visc_m_y, void *visc_m_z, void *visc_E, void *f_x, void *f_y, void *f_z, void *opgrad_x, void *opgrad_y, void *opgrad_z, void *u, void *v, void *w, void *B, void *dissipation, int n)
void opencl_update_mxyz_p_ruvw(void *m_x, void *m_y, void *m_z, void *p, void *ruvw, void *u, void *v, void *w, void *E, void *rho, real gamma, int n)
void cuda_ns_flux_prepare(void *div_flux, void *dissipation, void *h1, void *dudx, void *dudy, void *dudz, void *dvdx, void *dvdy, void *dvdz, void *dwdx, void *dwdy, void *dwdz, void *mu, int *n)
void cuda_ns_flux_finalize(void *visc_m_x, void *visc_m_y, void *visc_m_z, void *visc_E, void *f_x, void *f_y, void *f_z, void *opgrad_x, void *opgrad_y, void *opgrad_z, void *u, void *v, void *w, void *B, void *dissipation, int *n)
void cuda_update_uvw(void *u, void *v, void *w, void *m_x, void *m_y, void *m_z, void *rho, int *n)
void cuda_update_temperature(void *T, void *p, void *rho, real *gamma, int *n)
void cuda_ns_flux_temperature(void *div_flux, void *h1, void *p, void *rho, void *kappa, real *gamma, int *n)
void cuda_update_mxyz_p_ruvw(void *m_x, void *m_y, void *m_z, void *p, void *ruvw, void *u, void *v, void *w, void *E, void *rho, real *gamma, int *n)
void cuda_update_e(void *E, void *p, void *ruvw, real *gamma, int *n)
Device implementation of compressible flow operations.
subroutine, public compressible_ops_device_compute_entropy(s, p, rho, gamma, n)
Compute entropy field S = 1/(gamma-1) * rho * (log(p) - gamma * log(rho)) on device.
subroutine, public compressible_ops_device_update_uvw(u_d, v_d, w_d, m_x_d, m_y_d, m_z_d, rho_d, n)
Update u,v,w fields.
subroutine, public compressible_ops_device_ns_flux_prepare(div_flux_d, dissipation_d, h1_d, dudx_d, dudy_d, dudz_d, dvdx_d, dvdy_d, dvdz_d, dwdx_d, dwdy_d, dwdz_d, mu_d, n)
Prepare physical Navier-Stokes flux work arrays.
subroutine, public compressible_ops_device_ns_flux_finalize(visc_m_x_d, visc_m_y_d, visc_m_z_d, visc_e_d, f_x_d, f_y_d, f_z_d, opgrad_x_d, opgrad_y_d, opgrad_z_d, u_d, v_d, w_d, b_d, dissipation_d, n)
Finish physical Navier-Stokes flux assembly.
subroutine, public compressible_ops_device_update_temperature(t_d, p_d, rho_d, gamma, n)
Update temperature field.
subroutine, public compressible_ops_device_update_mxyz_p_ruvw(m_x_d, m_y_d, m_z_d, p_d, ruvw_d, u_d, v_d, w_d, e_d, rho_d, gamma, n)
Update m_x, m_y, m_z, p, ruvw, fields.
subroutine, public compressible_ops_device_compute_max_wave_speed(max_wave_speed, u, v, w, gamma, p, rho, n)
Compute maximum wave speed for compressible flows on device.
subroutine, public compressible_ops_device_update_e(e_d, p_d, ruvw_d, gamma, n)
Update E field.
subroutine, public compressible_ops_device_ns_flux_temperature(div_flux_d, h1_d, p_d, rho_d, kappa_d, gamma, n)
Prepare temperature and conductivity coefficient for energy flux.
integer, parameter, public c_rp
integer, parameter, public rp
Global precision used in computations.