Skip to content

Commit 8a772de

Browse files
committed
Trim unused IGR RHS memory allocations
1 parent d58bddf commit 8a772de

3 files changed

Lines changed: 46 additions & 29 deletions

File tree

src/simulation/m_igr.fpp

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -325,15 +325,14 @@ contains
325325
#endif
326326
type(scalar_field), dimension(sys_size), intent(inout) :: rhs_vf
327327
type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf
328-
real(wp) :: F_L, vel_L, rho_L, F_R, vel_R, rho_R, sigma_dt
328+
real(wp) :: F_L, vel_L, rho_L, F_R, vel_R, rho_R
329329
#:if not MFC_CASE_OPTIMIZATION
330330
real(wp), dimension(num_fluids_max) :: alpha_rho_L, alpha_rho_R
331331
#:else
332332
real(wp), dimension(num_fluids) :: alpha_rho_L, alpha_rho_R
333333
#:endif
334334

335-
$:GPU_PARALLEL_LOOP(collapse=3, &
336-
& private='[j, k, l, F_L, vel_L, alpha_rho_L, F_R, vel_R, alpha_rho_R, rho_L, rho_R, sigma_dt]')
335+
$:GPU_PARALLEL_LOOP(collapse=3, private='[j, k, l, F_L, vel_L, alpha_rho_L, F_R, vel_R, alpha_rho_R, rho_L, rho_R]')
337336
do l = 0, p
338337
do k = 0, n
339338
do j = -1, m
@@ -378,22 +377,19 @@ contains
378377
vel_L = vel_L/rho_L
379378
vel_R = vel_R/rho_R
380379

381-
! Preserve scaled-RHS semantics for the legacy sigma-x path.
382-
sigma_dt = merge(dt, 1._wp, viscous)
383-
384380
#:for LR in ['L', 'R']
385381
$:GPU_ATOMIC(atomic='update')
386382
rhs_vf(igr_momxb)%sf(j + 1, k, l) = rhs_vf(igr_momxb)%sf(j + 1, k, &
387-
& l) + real(0.5_wp*sigma_dt*F_${LR}$*(1._wp/dx(j + 1)), kind=stp)
383+
& l) + real(0.5_wp*dt*F_${LR}$*(1._wp/dx(j + 1)), kind=stp)
388384
$:GPU_ATOMIC(atomic='update')
389385
rhs_vf(igr_E_idx)%sf(j + 1, k, l) = rhs_vf(igr_E_idx)%sf(j + 1, k, &
390-
& l) + real(0.5_wp*sigma_dt*vel_${LR}$*F_${LR}$*(1._wp/dx(j + 1)), kind=stp)
386+
& l) + real(0.5_wp*dt*vel_${LR}$*F_${LR}$*(1._wp/dx(j + 1)), kind=stp)
391387
$:GPU_ATOMIC(atomic='update')
392-
rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, &
393-
& l) - real(0.5_wp*sigma_dt*F_${LR}$*(1._wp/dx(j)), kind=stp)
388+
rhs_vf(igr_momxb)%sf(j, k, l) = rhs_vf(igr_momxb)%sf(j, k, l) - real(0.5_wp*dt*F_${LR}$*(1._wp/dx(j)), &
389+
& kind=stp)
394390
$:GPU_ATOMIC(atomic='update')
395391
rhs_vf(igr_E_idx)%sf(j, k, l) = rhs_vf(igr_E_idx)%sf(j, k, &
396-
& l) - real(0.5_wp*sigma_dt*vel_${LR}$*F_${LR}$*(1._wp/dx(j)), kind=stp)
392+
& l) - real(0.5_wp*dt*vel_${LR}$*F_${LR}$*(1._wp/dx(j)), kind=stp)
397393
#:endfor
398394
end do
399395
end do

src/simulation/m_rhs.fpp

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,12 @@ contains
195195
do l = 1, sys_size
196196
@:ALLOCATE(flux_n(i)%vf(l)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, &
197197
& idwbuff(3)%beg:idwbuff(3)%end))
198-
@:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, &
199-
& idwbuff(3)%beg:idwbuff(3)%end))
198+
if (igr) then
199+
@:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(1:1, 1:1, 1:1))
200+
else
201+
@:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, &
202+
& idwbuff(3)%beg:idwbuff(3)%end))
203+
end if
200204
end do
201205

202206
if ((viscous .or. surface_tension) .or. igr) then
@@ -228,8 +232,12 @@ contains
228232
end if
229233
else
230234
do l = 1, sys_size
231-
@:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, &
232-
& idwbuff(3)%beg:idwbuff(3)%end))
235+
if (igr) then
236+
@:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(1:1, 1:1, 1:1))
237+
else
238+
@:ALLOCATE(flux_gsrc_n(i)%vf(l)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, &
239+
& idwbuff(3)%beg:idwbuff(3)%end))
240+
end if
233241
end do
234242
end if
235243

@@ -271,10 +279,15 @@ contains
271279
@:ALLOCATE(qL_prim(i)%vf(1:sys_size))
272280
@:ALLOCATE(qR_prim(i)%vf(1:sys_size))
273281
do l = eqn_idx%mom%beg, eqn_idx%mom%end
274-
@:ALLOCATE(qL_prim(i)%vf(l)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, &
275-
& idwbuff(3)%beg:idwbuff(3)%end))
276-
@:ALLOCATE(qR_prim(i)%vf(l)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, &
277-
& idwbuff(3)%beg:idwbuff(3)%end))
282+
if (igr) then
283+
@:ALLOCATE(qL_prim(i)%vf(l)%sf(1:1, 1:1, 1:1))
284+
@:ALLOCATE(qR_prim(i)%vf(l)%sf(1:1, 1:1, 1:1))
285+
else
286+
@:ALLOCATE(qL_prim(i)%vf(l)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, &
287+
& idwbuff(3)%beg:idwbuff(3)%end))
288+
@:ALLOCATE(qR_prim(i)%vf(l)%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, &
289+
& idwbuff(3)%beg:idwbuff(3)%end))
290+
end if
278291
end do
279292
@:ACC_SETUP_VFs(qL_prim(i), qR_prim(i))
280293
end do
@@ -409,19 +422,21 @@ contains
409422
end do
410423
end if
411424

412-
$:GPU_PARALLEL_LOOP(private='[i, j, k, l, id]', collapse=4)
413-
do id = 1, num_dims
414-
do i = 1, sys_size
415-
do l = idwbuff(3)%beg, idwbuff(3)%end
416-
do k = idwbuff(2)%beg, idwbuff(2)%end
417-
do j = idwbuff(1)%beg, idwbuff(1)%end
418-
flux_gsrc_n(id)%vf(i)%sf(j, k, l) = 0._wp
425+
if (.not. igr) then
426+
$:GPU_PARALLEL_LOOP(private='[i, j, k, l, id]', collapse=4)
427+
do id = 1, num_dims
428+
do i = 1, sys_size
429+
do l = idwbuff(3)%beg, idwbuff(3)%end
430+
do k = idwbuff(2)%beg, idwbuff(2)%end
431+
do j = idwbuff(1)%beg, idwbuff(1)%end
432+
flux_gsrc_n(id)%vf(i)%sf(j, k, l) = 0._wp
433+
end do
419434
end do
420435
end do
421436
end do
422437
end do
423-
end do
424-
$:END_GPU_PARALLEL_LOOP()
438+
$:END_GPU_PARALLEL_LOOP()
439+
end if
425440
! end if
426441

427442
if (qbmm) then
@@ -695,7 +710,9 @@ contains
695710
696711
! Match legacy IGR alpha-flux/source semantics before shared RHS accumulation.
697712
if (igr) then
713+
call nvtxStartRange("IGR-CORRECT-LF-FLUXES")
698714
call s_igr_correct_lf_fluxes(qR_rsx_vf, qL_rsx_vf, flux_n(id)%vf, flux_src_n(id)%vf, id)
715+
call nvtxEndRange
699716
end if
700717
701718
! Additional physics and source terms RHS addition for advection source

src/simulation/m_riemann_solvers.fpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,11 @@ contains
8383
is1%end = m; is2%end = n; is3%end = p
8484

8585
@:ALLOCATE(flux_rsx_vf(-1:m, -1:n, -1:p, 1:sys_size))
86-
@:ALLOCATE(flux_gsrc_rsx_vf(-1:m, -1:n, -1:p, 1:sys_size))
86+
if (igr) then
87+
@:ALLOCATE(flux_gsrc_rsx_vf(0:0, 0:0, 0:0, 1:1))
88+
else
89+
@:ALLOCATE(flux_gsrc_rsx_vf(-1:m, -1:n, -1:p, 1:sys_size))
90+
end if
8791
@:ALLOCATE(flux_src_rsx_vf(-1:m, -1:n, -1:p, eqn_idx%adv%beg:sys_size))
8892
@:ALLOCATE(vel_src_rsx_vf(-1:m, -1:n, -1:p, 1:num_vels))
8993
if (qbmm) then

0 commit comments

Comments
 (0)