Skip to content

Commit 24a9702

Browse files
Give HLL's viscous energy flux a face velocity (#2054)
Co-authored-by: Ben Wilfong <48168887+wilfonba@users.noreply.github.com>
1 parent 0bbddda commit 24a9702

3 files changed

Lines changed: 813 additions & 773 deletions

File tree

‎src/simulation/m_riemann_solver_hll.fpp‎

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ contains
7878
real(wp) :: gamma_avg
7979
real(wp) :: c_avg
8080
real(wp) :: s_L, s_R, s_M, s_P, s_S
81+
real(wp) :: vel_interface
82+
logical :: need_nc_vel
8183
real(wp) :: xi_M, xi_P
8284
real(wp) :: ptilde_L, ptilde_R
8385
real(wp) :: vel_L_rms, vel_R_rms, vel_avg_rms
@@ -100,6 +102,7 @@ contains
100102
! Reshaping inputted data based on dimensional splitting direction
101103
call s_initialize_riemann_solver(flux_src_vf, norm_dir)
102104
Re_size_loc1 = Re_size(1); Re_size_loc2 = Re_size(2)
105+
need_nc_vel = hypo_nc_mode == hypo_nc_mode_interface .or. (alt_soundspeed .and. .not. hll_u_interface)
103106
#:for NORM_DIR, XYZ, STENCIL_VAR, COORDS, X_BND, Y_BND, Z_BND in &
104107
[(1, 'x', 'j', '{STENCIL_IDX}, k, l', 'is1', 'is2', 'is3'), &
105108
(2, 'y', 'k', 'j, {STENCIL_IDX}, l', 'is2', 'is1', 'is3'), &
@@ -115,8 +118,8 @@ contains
115118
& gamma_L, gamma_R, pi_inf_L, pi_inf_R, qv_L, qv_R, qv_avg, c_L, c_R, G_L, G_R, damage_L, &
116119
& damage_R, solid_partial_density_L, solid_partial_density_R, rho_avg, H_avg, c_avg, &
117120
& gamma_avg, ptilde_L, ptilde_R, vel_L_rms, vel_R_rms, vel_avg_rms, Ms_L, Ms_R, pres_SL, &
118-
& pres_SR, alpha_L_sum, alpha_R_sum, flux_tau_L, flux_tau_R]', copyin='[norm_dir]', &
119-
& firstprivate='[Re_size_loc1, Re_size_loc2]')
121+
& pres_SR, alpha_L_sum, alpha_R_sum, flux_tau_L, flux_tau_R, vel_interface]', &
122+
& copyin='[norm_dir]', firstprivate='[Re_size_loc1, Re_size_loc2, need_nc_vel]')
120123
do l = ${Z_BND}$%beg, ${Z_BND}$%end
121124
do k = ${Y_BND}$%beg, ${Y_BND}$%end
122125
do j = ${X_BND}$%beg, ${X_BND}$%end
@@ -547,19 +550,19 @@ contains
547550
& /(s_M - s_P)
548551
end if
549552

550-
! Export interface velocity for NC RHS
551-
if (hypo_nc_mode == hypo_nc_mode_interface .or. (alt_soundspeed .and. .not. hll_u_interface)) then
553+
! Export interface velocity for NC RHS and viscous work
554+
if (need_nc_vel .or. viscous) then
552555
$:GPU_LOOP(parallelism='[seq]')
553556
do i = 1, num_dims
554557
if (0._wp <= s_L) then
555-
nc_iface_vel_rsx_vf(${SF('')}$, dir_idx(i)) = vel_L(dir_idx(i))
558+
vel_interface = vel_L(dir_idx(i))
556559
else if (s_R <= 0._wp) then
557-
nc_iface_vel_rsx_vf(${SF('')}$, dir_idx(i)) = vel_R(dir_idx(i))
560+
vel_interface = vel_R(dir_idx(i))
558561
else
559-
nc_iface_vel_rsx_vf(${SF('')}$, &
560-
& dir_idx(i)) = (s_R*vel_L(dir_idx(i)) - s_L*vel_R(dir_idx(i)))/(s_R &
561-
& - s_L)
562+
vel_interface = (s_R*vel_L(dir_idx(i)) - s_L*vel_R(dir_idx(i)))/(s_R - s_L)
562563
end if
564+
if (need_nc_vel) nc_iface_vel_rsx_vf(${SF('')}$, dir_idx(i)) = vel_interface
565+
if (viscous) vel_src_rsx_vf(${SF('')}$, dir_idx(i)) = vel_interface
563566
end do
564567
end if
565568

‎tests/70EC99CE/golden-metadata.txt‎

Lines changed: 101 additions & 64 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)