Skip to content

Commit 5f8763e

Browse files
committed
Fix cylindrical angular flux scaling and geometric sources
1 parent d74cc37 commit 5f8763e

3 files changed

Lines changed: 29 additions & 8 deletions

File tree

src/simulation/m_rhs.fpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,7 +1057,7 @@ contains
10571057
integer :: k_loop, l_loop, q_loop !< Standardized spatial loop iterators 0:m, 0:n, 0:p
10581058
integer :: i_fluid_loop
10591059
real(wp) :: inv_ds, flux_face1, flux_face2
1060-
real(wp) :: advected_qty_val, pressure_val, velocity_val
1060+
real(wp) :: advected_qty_val, pressure_val
10611061
real(wp) :: G1_eff, G2_eff
10621062

10631063
G1_eff = 0._wp
@@ -1312,16 +1312,15 @@ contains
13121312
end if
13131313
13141314
if (grid_geometry == 3) then ! Cylindrical Coordinates
1315-
$:GPU_PARALLEL_LOOP(collapse=4,private='[j, k, l, q, inv_ds, velocity_val, flux_face1, flux_face2]')
1315+
$:GPU_PARALLEL_LOOP(collapse=4,private='[j, k, l, q, inv_ds, flux_face1, flux_face2]')
13161316
do j = 1, sys_size
13171317
do k = 0, p
13181318
do q = 0, n
13191319
do l = 0, m
13201320
inv_ds = 1._wp/(dz(k)*y_cc(q))
1321-
velocity_val = q_prim_vf%vf(eqn_idx%cont%end + idir)%sf(l, q, k)
13221321
flux_face1 = flux_n(3)%vf(j)%sf(l, q, k - 1)
13231322
flux_face2 = flux_n(3)%vf(j)%sf(l, q, k)
1324-
rhs_vf(j)%sf(l, q, k) = rhs_vf(j)%sf(l, q, k) + inv_ds*velocity_val*(flux_face1 - flux_face2)
1323+
rhs_vf(j)%sf(l, q, k) = rhs_vf(j)%sf(l, q, k) + inv_ds*(flux_face1 - flux_face2)
13251324
end do
13261325
end do
13271326
end do
@@ -1604,7 +1603,7 @@ contains
16041603
do k_idx = 0, p ! z_extent
16051604
do q_idx = 0, n ! y_extent
16061605
do l_idx = 0, m ! x_extent
1607-
local_inv_ds = 1._wp/dz(k_idx)
1606+
local_inv_ds = 1._wp/(dz(k_idx)*y_cc(q_idx))
16081607
local_term_coeff = q_prim_vf_arg%vf(eqn_idx%cont%end + current_idir)%sf(l_idx, q_idx, k_idx)
16091608
local_flux1 = flux_src_n_vf_arg%vf(j_adv)%sf(l_idx, q_idx, k_idx - 1)
16101609
local_flux2 = flux_src_n_vf_arg%vf(j_adv)%sf(l_idx, q_idx, k_idx)
@@ -1619,7 +1618,7 @@ contains
16191618
$:GPU_PARALLEL_LOOP(collapse=3, private='[k_idx, l_idx, q_idx, local_inv_ds, local_k_term_val, &
16201619
& local_flux1, local_flux2]')
16211620
do k_idx = 0, p; do q_idx = 0, n; do l_idx = 0, m
1622-
local_inv_ds = 1._wp/dz(k_idx)
1621+
local_inv_ds = 1._wp/(dz(k_idx)*y_cc(q_idx))
16231622
local_k_term_val = Kterm_arg(l_idx, q_idx, k_idx)
16241623
local_flux1 = nc_iface_vel_n(3)%vf(3)%sf(l_idx, q_idx, k_idx)
16251624
local_flux2 = nc_iface_vel_n(3)%vf(3)%sf(l_idx, q_idx, k_idx - 1)
@@ -1636,7 +1635,7 @@ contains
16361635
& local_flux1, local_flux2]')
16371636
do j_adv = eqn_idx%adv%beg, eqn_idx%adv%end
16381637
do k_idx = 0, p; do q_idx = 0, n; do l_idx = 0, m
1639-
local_inv_ds = 1._wp/dz(k_idx)
1638+
local_inv_ds = 1._wp/(dz(k_idx)*y_cc(q_idx))
16401639
local_term_coeff = q_cons_vf_arg%vf(j_adv)%sf(l_idx, q_idx, k_idx)
16411640
local_flux1 = flux_src_n_vf_arg%vf(eqn_idx%adv%beg)%sf(l_idx, q_idx, k_idx)
16421641
local_flux2 = flux_src_n_vf_arg%vf(eqn_idx%adv%beg)%sf(l_idx, q_idx, k_idx - 1)
@@ -1649,7 +1648,7 @@ contains
16491648
$:GPU_PARALLEL_LOOP(collapse=3, private='[k_idx, l_idx, q_idx, local_inv_ds, local_k_term_val, &
16501649
& local_flux1, local_flux2]')
16511650
do k_idx = 0, p; do q_idx = 0, n; do l_idx = 0, m
1652-
local_inv_ds = 1._wp/dz(k_idx)
1651+
local_inv_ds = 1._wp/(dz(k_idx)*y_cc(q_idx))
16531652
local_k_term_val = Kterm_arg(l_idx, q_idx, k_idx)
16541653
local_flux1 = flux_src_n_vf_arg%vf(eqn_idx%adv%beg)%sf(l_idx, q_idx, k_idx)
16551654
local_flux2 = flux_src_n_vf_arg%vf(eqn_idx%adv%beg)%sf(l_idx, q_idx, k_idx - 1)

src/simulation/m_riemann_solver_hll.fpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -668,6 +668,17 @@ contains
668668
end do
669669
end if
670670
#:endif
671+
#:if (NORM_DIR == 3)
672+
if (grid_geometry == 3) then
673+
$:GPU_LOOP(parallelism='[seq]')
674+
do i = 1, sys_size
675+
flux_gsrc_rsx_vf(${SF('')}$, i) = 0._wp
676+
end do
677+
flux_gsrc_rsx_vf(${SF('')}$, eqn_idx%mom%beg + 1) = &
678+
& -flux_rsx_vf(${SF('')}$, eqn_idx%mom%end) + (s_M*pres_R - s_P*pres_L)/(s_M - s_P)
679+
flux_gsrc_rsx_vf(${SF('')}$, eqn_idx%mom%end) = flux_rsx_vf(${SF('')}$, eqn_idx%mom%beg + 1)
680+
end if
681+
#:endif
671682
end do
672683
end do
673684
end do

src/simulation/m_riemann_solver_lf.fpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,17 @@ contains
349349
end do
350350
end if
351351
#:endif
352+
#:if (NORM_DIR == 3)
353+
if (grid_geometry == 3) then
354+
$:GPU_LOOP(parallelism='[seq]')
355+
do i = 1, sys_size
356+
flux_gsrc_rsx_vf(${SF('')}$, i) = 0._wp
357+
end do
358+
flux_gsrc_rsx_vf(${SF('')}$, eqn_idx%mom%beg + 1) = &
359+
& -flux_rsx_vf(${SF('')}$, eqn_idx%mom%end) + (s_M*pres_R - s_P*pres_L)/(s_M - s_P)
360+
flux_gsrc_rsx_vf(${SF('')}$, eqn_idx%mom%end) = flux_rsx_vf(${SF('')}$, eqn_idx%mom%beg + 1)
361+
end if
362+
#:endif
352363
end do
353364
end do
354365
end do

0 commit comments

Comments
 (0)