Skip to content

Commit d4ba8ea

Browse files
Moved the q, pb, mv evolution to a submodule that passes tests.
1 parent c939eec commit d4ba8ea

File tree

1 file changed

+48
-47
lines changed

1 file changed

+48
-47
lines changed

src/simulation/m_time_steppers.fpp

Lines changed: 48 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,52 @@ contains
357357

358358
end subroutine s_initialize_time_steppers_module
359359

360+
subroutine s_evolve_q_pb_mv(index1, index2, scaler1, scaler2, scaler3, scaler4) !! TODO :: Get a better name for this
361+
362+
integer, intent(in) :: index1, index2 !! TODO :: I have no idea what index is meant to represent. Rename this.
363+
real(wp), intent(in) :: scaler1, scaler2, scaler3, scaler4
364+
integer :: i, j, k, l, q
365+
366+
!$acc parallel loop collapse(4) gang vector default(present)
367+
do i = 1, sys_size
368+
do l = 0, p
369+
do k = 0, n
370+
do j = 0, m
371+
q_cons_ts(index1)%vf(i)%sf(j, k, l) = &
372+
(scaler1 * q_cons_ts(1)%vf(i)%sf(j, k, l) &
373+
+ scaler2 * q_cons_ts(index2)%vf(i)%sf(j, k, l) &
374+
+ scaler3 * dt * rhs_vf(i)%sf(j, k, l)) / scaler4
375+
end do
376+
end do
377+
end do
378+
end do
379+
380+
!Evolve pb and mv for non-polytropic qbmm
381+
!! TODO :: It really feels like this loop should be separated from the above loop. Consider making two different subroutines
382+
if (qbmm .and. (.not. polytropic)) then
383+
!$acc parallel loop collapse(5) gang vector default(present)
384+
do i = 1, nb
385+
do l = 0, p
386+
do k = 0, n
387+
do j = 0, m
388+
do q = 1, nnode
389+
pb_ts(index1)%sf(j, k, l, q, i) = &
390+
(scaler1 * pb_ts(1)%sf(j, k, l, q, i) &
391+
+ scaler2 * pb_ts(index2)%sf(j, k, l, q, i) &
392+
+ scaler3 * dt * rhs_pb(j, k, l, q, i)) / scaler4
393+
mv_ts(index1)%sf(j, k, l, q, i) = &
394+
(scaler1 * mv_ts(1)%sf(j, k, l, q, i) &
395+
+ scaler2 * mv_ts(index2)%sf(j, k, l, q, i) &
396+
+ scaler3 * dt * rhs_mv(j, k, l, q, i)) / scaler4
397+
end do
398+
end do
399+
end do
400+
end do
401+
end do
402+
end if
403+
404+
end subroutine s_evolve_q_pb_mv
405+
360406
!> 1st order TVD RK time-stepping algorithm
361407
!! @param t_step Current time step
362408
subroutine s_1st_order_tvd_rk(t_step, time_avg)
@@ -398,53 +444,8 @@ contains
398444
call s_update_lagrange_tdv_rk(stage=1)
399445
end if
400446

401-
!$acc parallel loop collapse(4) gang vector default(present)
402-
do i = 1, sys_size
403-
do l = 0, p
404-
do k = 0, n
405-
do j = 0, m
406-
q_cons_ts(1)%vf(i)%sf(j, k, l) = &
407-
q_cons_ts(1)%vf(i)%sf(j, k, l) &
408-
+ dt*rhs_vf(i)%sf(j, k, l)
409-
end do
410-
end do
411-
end do
412-
end do
413-
414-
!Evolve pb and mv for non-polytropic qbmm
415-
if (qbmm .and. (.not. polytropic)) then
416-
!$acc parallel loop collapse(5) gang vector default(present)
417-
do i = 1, nb
418-
do l = 0, p
419-
do k = 0, n
420-
do j = 0, m
421-
do q = 1, nnode
422-
pb_ts(1)%sf(j, k, l, q, i) = &
423-
pb_ts(1)%sf(j, k, l, q, i) &
424-
+ dt*rhs_pb(j, k, l, q, i)
425-
end do
426-
end do
427-
end do
428-
end do
429-
end do
430-
end if
431-
432-
if (qbmm .and. (.not. polytropic)) then
433-
!$acc parallel loop collapse(5) gang vector default(present)
434-
do i = 1, nb
435-
do l = 0, p
436-
do k = 0, n
437-
do j = 0, m
438-
do q = 1, nnode
439-
mv_ts(1)%sf(j, k, l, q, i) = &
440-
mv_ts(1)%sf(j, k, l, q, i) &
441-
+ dt*rhs_mv(j, k, l, q, i)
442-
end do
443-
end do
444-
end do
445-
end do
446-
end do
447-
end if
447+
call s_evolve_q_pb_mv(1, 1, 1._wp, 1._wp, 1._wp, 1._wp)
448+
448449

449450
if (bodyForces) call s_apply_bodyforces(q_cons_ts(1)%vf, q_prim_vf, rhs_vf, dt)
450451

0 commit comments

Comments
 (0)