From 4273c849e8df48dd7ff2aa4ddf2dfd58f04f5ffc Mon Sep 17 00:00:00 2001 From: danieljvickers Date: Sun, 15 Mar 2026 07:51:06 -0400 Subject: [PATCH 01/10] Remove interior point conservative variable protection for stationary boundaries --- src/simulation/m_ibm.fpp | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/simulation/m_ibm.fpp b/src/simulation/m_ibm.fpp index b87f5a1b19..d5eeb527cb 100644 --- a/src/simulation/m_ibm.fpp +++ b/src/simulation/m_ibm.fpp @@ -192,7 +192,7 @@ contains type(ghost_point) :: gp type(ghost_point) :: innerp - ! set the Moving IBM interior Pressure Values + ! set the Moving IBM interior conservative variables $:GPU_PARALLEL_LOOP(private='[i,j,k,patch_id,rho]', copyin='[E_idx,momxb]', collapse=3) do l = 0, p do k = 0, n @@ -200,18 +200,16 @@ contains patch_id = ib_markers%sf(j, k, l) if (patch_id /= 0) then q_prim_vf(E_idx)%sf(j, k, l) = 1._wp - if (patch_ib(patch_id)%moving_ibm > 0) then - rho = 0._wp - do i = 1, num_fluids - rho = rho + q_prim_vf(contxb + i - 1)%sf(j, k, l) - end do + rho = 0._wp + do i = 1, num_fluids + rho = rho + q_prim_vf(contxb + i - 1)%sf(j, k, l) + end do - ! Sets the momentum - do i = 1, num_dims - q_cons_vf(momxb + i - 1)%sf(j, k, l) = patch_ib(patch_id)%vel(i)*rho - q_prim_vf(momxb + i - 1)%sf(j, k, l) = patch_ib(patch_id)%vel(i) - end do - end if + ! Sets the momentum + do i = 1, num_dims + q_cons_vf(momxb + i - 1)%sf(j, k, l) = patch_ib(patch_id)%vel(i)*rho + q_prim_vf(momxb + i - 1)%sf(j, k, l) = patch_ib(patch_id)%vel(i) + end do end if end do end do From 2c9b0fc591922a7ff26ffa355fcb47117f92cc71 Mon Sep 17 00:00:00 2001 From: Daniel Vickers Date: Thu, 16 Apr 2026 12:34:51 -0400 Subject: [PATCH 02/10] unwrapped more alpha assigments in MFC --- src/simulation/m_weno.fpp | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/simulation/m_weno.fpp b/src/simulation/m_weno.fpp index c2b1cc5ac7..8eed3b2aa7 100644 --- a/src/simulation/m_weno.fpp +++ b/src/simulation/m_weno.fpp @@ -941,7 +941,7 @@ contains if (weno_order == 3 .or. dummy) then #:for WENO_DIR, XYZ in [(1, 'x'), (2, 'y'), (3, 'z')] if (weno_dir == ${WENO_DIR}$) then - $:GPU_PARALLEL_LOOP(collapse=4,private='[beta, dvd, poly, omega, alpha, tau]') + $:GPU_PARALLEL_LOOP(collapse=4,private='[beta, dvd, poly, omega, alpha, tau, q]') do l = is3_weno%beg, is3_weno%end do k = is2_weno%beg, is2_weno%end do j = is1_weno%beg, is1_weno%end @@ -962,8 +962,9 @@ contains beta(1) = beta_coef_${XYZ}$ (j, 1, 0)*dvd(-1)*dvd(-1) + weno_eps if (wenojs) then - alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) + do q = 0, weno_num_stencils + alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) + end do else if (mapped_weno) then alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & & j)/(beta(0:weno_num_stencils)**2._wp) @@ -978,8 +979,9 @@ contains ! Borges, et al. (2008) tau = abs(beta(1) - beta(0)) - alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)*(1._wp + tau/beta(0:weno_num_stencils)) + do q = 0, weno_num_stencils + alpha(q) = d_cbL_${XYZ}$ (q, j)/(1._wp + tau/beta(q)**2._wp) + end do end if omega = alpha/sum(alpha) @@ -992,8 +994,9 @@ contains poly(1) = v_rs_ws_${XYZ}$ (j, k, l, i) + poly_coef_cbR_${XYZ}$ (j, 1, 0)*dvd(-1) if (wenojs) then - alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) + do q = 0, weno_num_stencils + alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) + end do else if (mapped_weno) then alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & & j)/(beta(0:weno_num_stencils)**2._wp) @@ -1057,8 +1060,9 @@ contains & 1)*dvd(-1)*dvd(-2) + beta_coef_${XYZ}$ (j, 2, 2)*dvd(-2)*dvd(-2) + weno_eps if (wenojs) then - alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) + do q = 0, weno_num_stencils + alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) + end do else if (mapped_weno) then alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & & j)/(beta(0:weno_num_stencils)**2._wp) @@ -1114,8 +1118,9 @@ contains & 0)*dvd(-1) + poly_coef_cbR_${XYZ}$ (j, 2, 1)*dvd(-2) if (wenojs) then - alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) + do q = 0, weno_num_stencils + alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) + end do else if (mapped_weno) then alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & & j)/(beta(0:weno_num_stencils)**2._wp) @@ -1252,6 +1257,7 @@ contains end if if (wenojs) then + d_cbR_${XYZ}$ (0:weno_num_stencils,j)/(beta(0:weno_num_stencils)**2._wp) alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & & j)/(beta(0:weno_num_stencils)**2._wp) else if (mapped_weno) then @@ -1327,8 +1333,9 @@ contains end if if (wenojs) then - alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) + do q = 0, weno_num_stencils + alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) + end do else if (mapped_weno) then alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & & j)/(beta(0:weno_num_stencils)**2._wp) From 4cccc578816243e75c423831b37455f9025b4afc Mon Sep 17 00:00:00 2001 From: Daniel Vickers Date: Thu, 16 Apr 2026 13:54:32 -0400 Subject: [PATCH 03/10] unwrapped more --- src/simulation/m_weno.fpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/simulation/m_weno.fpp b/src/simulation/m_weno.fpp index 8eed3b2aa7..d99915c7cd 100644 --- a/src/simulation/m_weno.fpp +++ b/src/simulation/m_weno.fpp @@ -1060,9 +1060,9 @@ contains & 1)*dvd(-1)*dvd(-2) + beta_coef_${XYZ}$ (j, 2, 2)*dvd(-2)*dvd(-2) + weno_eps if (wenojs) then - do q = 0, weno_num_stencils - alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) - end do + alpha(0) = d_cbL_${XYZ}$ (0, j)/(beta(0)**2._wp) + alpha(1) = d_cbL_${XYZ}$ (1, j)/(beta(1)**2._wp) + alpha(2) = d_cbL_${XYZ}$ (2, j)/(beta(2)**2._wp) else if (mapped_weno) then alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & & j)/(beta(0:weno_num_stencils)**2._wp) @@ -1118,9 +1118,9 @@ contains & 0)*dvd(-1) + poly_coef_cbR_${XYZ}$ (j, 2, 1)*dvd(-2) if (wenojs) then - do q = 0, weno_num_stencils - alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) - end do + alpha(0) = d_cbR_${XYZ}$ (0, j)/(beta(0)**2._wp) + alpha(1) = d_cbR_${XYZ}$ (1, j)/(beta(1)**2._wp) + alpha(2) = d_cbR_${XYZ}$ (2, j)/(beta(2)**2._wp) else if (mapped_weno) then alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & & j)/(beta(0:weno_num_stencils)**2._wp) From 2cf56df675ca4d64e9fc97a64327b07eb3f575ea Mon Sep 17 00:00:00 2001 From: Daniel Vickers Date: Thu, 16 Apr 2026 14:16:29 -0400 Subject: [PATCH 04/10] AMD speedup achieved --- src/simulation/m_weno.fpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/simulation/m_weno.fpp b/src/simulation/m_weno.fpp index d99915c7cd..3f56226eaa 100644 --- a/src/simulation/m_weno.fpp +++ b/src/simulation/m_weno.fpp @@ -1104,7 +1104,9 @@ contains end do end if - omega = alpha/sum(alpha) + omega(0) = alpha(0)/(alpha(0) + alpha(1) + alpha(2)) + omega(1) = alpha(1)/(alpha(0) + alpha(1) + alpha(2)) + omega(2) = alpha(2)/(alpha(0) + alpha(1) + alpha(2)) vL_rs_vf_${XYZ}$ (j, k, l, i) = omega(0)*poly(0) + omega(1)*poly(1) + omega(2)*poly(2) @@ -1143,7 +1145,9 @@ contains end do end if - omega = alpha/sum(alpha) + omega(0) = alpha(0)/(alpha(0) + alpha(1) + alpha(2)) + omega(1) = alpha(1)/(alpha(0) + alpha(1) + alpha(2)) + omega(2) = alpha(2)/(alpha(0) + alpha(1) + alpha(2)) vR_rs_vf_${XYZ}$ (j, k, l, i) = omega(0)*poly(0) + omega(1)*poly(1) + omega(2)*poly(2) end do From 03979eff83096236884465bd6fda3f268d03fdf0 Mon Sep 17 00:00:00 2001 From: Daniel Vickers Date: Thu, 16 Apr 2026 14:30:49 -0400 Subject: [PATCH 05/10] Remove hanging statement --- src/simulation/m_weno.fpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/simulation/m_weno.fpp b/src/simulation/m_weno.fpp index 3f56226eaa..92b5ca3132 100644 --- a/src/simulation/m_weno.fpp +++ b/src/simulation/m_weno.fpp @@ -1261,7 +1261,6 @@ contains end if if (wenojs) then - d_cbR_${XYZ}$ (0:weno_num_stencils,j)/(beta(0:weno_num_stencils)**2._wp) alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & & j)/(beta(0:weno_num_stencils)**2._wp) else if (mapped_weno) then From d7693a96180b03999b1b2ef21dd589ff6be8c3ed Mon Sep 17 00:00:00 2001 From: Daniel Vickers Date: Thu, 16 Apr 2026 14:55:27 -0400 Subject: [PATCH 06/10] Loops work --- src/simulation/m_weno.fpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/simulation/m_weno.fpp b/src/simulation/m_weno.fpp index 92b5ca3132..7d7c4c6ec0 100644 --- a/src/simulation/m_weno.fpp +++ b/src/simulation/m_weno.fpp @@ -1060,9 +1060,9 @@ contains & 1)*dvd(-1)*dvd(-2) + beta_coef_${XYZ}$ (j, 2, 2)*dvd(-2)*dvd(-2) + weno_eps if (wenojs) then - alpha(0) = d_cbL_${XYZ}$ (0, j)/(beta(0)**2._wp) - alpha(1) = d_cbL_${XYZ}$ (1, j)/(beta(1)**2._wp) - alpha(2) = d_cbL_${XYZ}$ (2, j)/(beta(2)**2._wp) + do q = 0, weno_num_stencils + alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) + end do else if (mapped_weno) then alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & & j)/(beta(0:weno_num_stencils)**2._wp) @@ -1120,9 +1120,9 @@ contains & 0)*dvd(-1) + poly_coef_cbR_${XYZ}$ (j, 2, 1)*dvd(-2) if (wenojs) then - alpha(0) = d_cbR_${XYZ}$ (0, j)/(beta(0)**2._wp) - alpha(1) = d_cbR_${XYZ}$ (1, j)/(beta(1)**2._wp) - alpha(2) = d_cbR_${XYZ}$ (2, j)/(beta(2)**2._wp) + do q = 0, weno_num_stencils + alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) + end do else if (mapped_weno) then alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & & j)/(beta(0:weno_num_stencils)**2._wp) From f49f69f23b55e95ce3310f3e79f787484946fc18 Mon Sep 17 00:00:00 2001 From: Daniel Vickers Date: Thu, 16 Apr 2026 16:42:35 -0400 Subject: [PATCH 07/10] matched array unwrapping with the rest of the weno conditions --- src/simulation/m_weno.fpp | 107 +++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 59 deletions(-) diff --git a/src/simulation/m_weno.fpp b/src/simulation/m_weno.fpp index 7d7c4c6ec0..b165e645b2 100644 --- a/src/simulation/m_weno.fpp +++ b/src/simulation/m_weno.fpp @@ -966,18 +966,15 @@ contains alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) end do else if (mapped_weno) then - alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) - omega = alpha/sum(alpha) - alpha(0:weno_num_stencils) = (d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)*(1._wp + d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j) - 3._wp*omega(0:weno_num_stencils)) + omega(0:weno_num_stencils)**2._wp) & - & *(omega(0:weno_num_stencils)/(d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)**2._wp + omega(0:weno_num_stencils)*(1._wp & - & - 2._wp*d_cbL_${XYZ}$ (0:weno_num_stencils,j)))) + do q = 0, weno_num_stencils + alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) + omega = alpha/sum(alpha) + alpha(q) = (d_cbL_${XYZ}$ (q, j)*(1._wp + d_cbL_${XYZ}$ (q, & + & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbL_${XYZ}$ (q, & + & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbL_${XYZ}$ (q, j)))) + end do else if (wenoz) then ! Borges, et al. (2008) - tau = abs(beta(1) - beta(0)) do q = 0, weno_num_stencils alpha(q) = d_cbL_${XYZ}$ (q, j)/(1._wp + tau/beta(q)**2._wp) @@ -998,18 +995,17 @@ contains alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) end do else if (mapped_weno) then - alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) - omega = alpha/sum(alpha) - alpha(0:weno_num_stencils) = (d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)*(1._wp + d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j) - 3._wp*omega(0:weno_num_stencils)) + omega(0:weno_num_stencils)**2._wp) & - & *(omega(0:weno_num_stencils)/(d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)**2._wp + omega(0:weno_num_stencils)*(1._wp & - & - 2._wp*d_cbR_${XYZ}$ (0:weno_num_stencils,j)))) + do q = 0, weno_num_stencils + alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) + omega = alpha/sum(alpha) + alpha(q) = (d_cbR_${XYZ}$ (q, j)*(1._wp + d_cbR_${XYZ}$ (q, & + & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbR_${XYZ}$ (q, & + & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbR_${XYZ}$ (q, j)))) + end do else if (wenoz) then - alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)*(1._wp + tau/beta(0:weno_num_stencils)) + do q = 0, weno_num_stencils + alpha(q) = d_cbR_${XYZ}$ (q, j)*(1._wp + tau/beta(q)) + end do end if omega = alpha/sum(alpha) @@ -1064,15 +1060,13 @@ contains alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) end do else if (mapped_weno) then - alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) - omega = alpha/sum(alpha) - alpha(0:weno_num_stencils) = (d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)*(1._wp + d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j) - 3._wp*omega(0:weno_num_stencils)) + omega(0:weno_num_stencils)**2._wp) & - & *(omega(0:weno_num_stencils)/(d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)**2._wp + omega(0:weno_num_stencils)*(1._wp & - & - 2._wp*d_cbL_${XYZ}$ (0:weno_num_stencils,j)))) + do q = 0, weno_num_stencils + alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) + omega = alpha/sum(alpha) + alpha(q) = (d_cbL_${XYZ}$ (q, j)*(1._wp + d_cbL_${XYZ}$ (q, & + & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbL_${XYZ}$ (q, & + & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbL_${XYZ}$ (q, j)))) + end do else if (wenoz) then ! Borges, et al. (2008) @@ -1124,15 +1118,13 @@ contains alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) end do else if (mapped_weno) then - alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) - omega = alpha/sum(alpha) - alpha(0:weno_num_stencils) = (d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)*(1._wp + d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j) - 3._wp*omega(0:weno_num_stencils)) + omega(0:weno_num_stencils)**2._wp) & - & *(omega(0:weno_num_stencils)/(d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)**2._wp + omega(0:weno_num_stencils)*(1._wp & - & - 2._wp*d_cbR_${XYZ}$ (0:weno_num_stencils,j)))) + do q = 0, weno_num_stencils + alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) + omega = alpha/sum(alpha) + alpha(q) = (d_cbR_${XYZ}$ (q, j)*(1._wp + d_cbR_${XYZ}$ (q, & + & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbR_${XYZ}$ (q, & + & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbR_${XYZ}$ (q, j)))) + end do else if (wenoz) then $:GPU_LOOP(parallelism='[seq]') do q = 0, weno_num_stencils @@ -1261,18 +1253,17 @@ contains end if if (wenojs) then - alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) + do q = 0, weno_num_stencils + alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) + end do else if (mapped_weno) then - alpha(0:weno_num_stencils) = d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) - omega = alpha/sum(alpha) - alpha(0:weno_num_stencils) = (d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)*(1._wp + d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j) - 3._wp*omega(0:weno_num_stencils)) + omega(0:weno_num_stencils)**2._wp) & - & *(omega(0:weno_num_stencils)/(d_cbL_${XYZ}$ (0:weno_num_stencils, & - & j)**2._wp + omega(0:weno_num_stencils)*(1._wp & - & - 2._wp*d_cbL_${XYZ}$ (0:weno_num_stencils,j)))) + do q = 0, weno_num_stencils + alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) + omega = alpha/sum(alpha) + alpha(q) = (d_cbL_${XYZ}$ (q, j)*(1._wp + d_cbL_${XYZ}$ (q, & + & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbL_${XYZ}$ (q, & + & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbL_${XYZ}$ (q, j)))) + end do else if (wenoz) then ! Castro, et al. (2010) Don & Borges (2013) also helps tau = abs(beta(3) - beta(0)) ! Equation 50 @@ -1340,15 +1331,13 @@ contains alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) end do else if (mapped_weno) then - alpha(0:weno_num_stencils) = d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)/(beta(0:weno_num_stencils)**2._wp) - omega = alpha/sum(alpha) - alpha(0:weno_num_stencils) = (d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)*(1._wp + d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j) - 3._wp*omega(0:weno_num_stencils)) + omega(0:weno_num_stencils)**2._wp) & - & *(omega(0:weno_num_stencils)/(d_cbR_${XYZ}$ (0:weno_num_stencils, & - & j)**2._wp + omega(0:weno_num_stencils)*(1._wp & - & - 2._wp*d_cbR_${XYZ}$ (0:weno_num_stencils,j)))) + do q = 0, weno_num_stencils + alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) + omega = alpha/sum(alpha) + alpha(q) = (d_cbR_${XYZ}$ (q, j)*(1._wp + d_cbR_${XYZ}$ (q, & + & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbR_${XYZ}$ (q, & + & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbR_${XYZ}$ (q, j)))) + end do else if (wenoz) then $:GPU_LOOP(parallelism='[seq]') do q = 0, weno_num_stencils From ea07618f607648e3cb8d7176ea5ff96aa018b11c Mon Sep 17 00:00:00 2001 From: danieljvickers Date: Fri, 17 Apr 2026 16:38:11 -0400 Subject: [PATCH 08/10] Added to other wenos --- src/simulation/m_weno.fpp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/simulation/m_weno.fpp b/src/simulation/m_weno.fpp index b165e645b2..edea49dc68 100644 --- a/src/simulation/m_weno.fpp +++ b/src/simulation/m_weno.fpp @@ -968,7 +968,9 @@ contains else if (mapped_weno) then do q = 0, weno_num_stencils alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) - omega = alpha/sum(alpha) + end do + omega = alpha/sum(alpha) + do q = 0, weno_num_stencils alpha(q) = (d_cbL_${XYZ}$ (q, j)*(1._wp + d_cbL_${XYZ}$ (q, & & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbL_${XYZ}$ (q, & & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbL_${XYZ}$ (q, j)))) @@ -997,7 +999,9 @@ contains else if (mapped_weno) then do q = 0, weno_num_stencils alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) - omega = alpha/sum(alpha) + end do + omega = alpha/sum(alpha) + do q = 0, weno_num_stencils alpha(q) = (d_cbR_${XYZ}$ (q, j)*(1._wp + d_cbR_${XYZ}$ (q, & & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbR_${XYZ}$ (q, & & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbR_${XYZ}$ (q, j)))) @@ -1062,7 +1066,9 @@ contains else if (mapped_weno) then do q = 0, weno_num_stencils alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) - omega = alpha/sum(alpha) + end do + omega = alpha/sum(alpha) + do q = 0, weno_num_stencils alpha(q) = (d_cbL_${XYZ}$ (q, j)*(1._wp + d_cbL_${XYZ}$ (q, & & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbL_${XYZ}$ (q, & & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbL_${XYZ}$ (q, j)))) @@ -1120,7 +1126,9 @@ contains else if (mapped_weno) then do q = 0, weno_num_stencils alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) - omega = alpha/sum(alpha) + end do + omega = alpha/sum(alpha) + do q = 0, weno_num_stencils alpha(q) = (d_cbR_${XYZ}$ (q, j)*(1._wp + d_cbR_${XYZ}$ (q, & & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbR_${XYZ}$ (q, & & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbR_${XYZ}$ (q, j)))) @@ -1259,7 +1267,9 @@ contains else if (mapped_weno) then do q = 0, weno_num_stencils alpha(q) = d_cbL_${XYZ}$ (q, j)/(beta(q)**2._wp) - omega = alpha/sum(alpha) + end do + omega = alpha/sum(alpha) + do q = 0, weno_num_stencils alpha(q) = (d_cbL_${XYZ}$ (q, j)*(1._wp + d_cbL_${XYZ}$ (q, & & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbL_${XYZ}$ (q, & & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbL_${XYZ}$ (q, j)))) @@ -1333,7 +1343,9 @@ contains else if (mapped_weno) then do q = 0, weno_num_stencils alpha(q) = d_cbR_${XYZ}$ (q, j)/(beta(q)**2._wp) - omega = alpha/sum(alpha) + end do + omega = alpha/sum(alpha) + do q = 0, weno_num_stencils alpha(q) = (d_cbR_${XYZ}$ (q, j)*(1._wp + d_cbR_${XYZ}$ (q, & & j) - 3._wp*omega(q)) + omega(q)**2._wp)*(omega(q)/(d_cbR_${XYZ}$ (q, & & j)**2._wp + omega(q)*(1._wp - 2._wp*d_cbR_${XYZ}$ (q, j)))) From 7e26f9a8041e1605ec758e78f2bc862d715bd0ee Mon Sep 17 00:00:00 2001 From: wilfonba Date: Mon, 20 Apr 2026 11:23:46 -0400 Subject: [PATCH 09/10] bug fix for WENOZ3 --- src/simulation/m_weno.fpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/simulation/m_weno.fpp b/src/simulation/m_weno.fpp index edea49dc68..99172ccbe9 100644 --- a/src/simulation/m_weno.fpp +++ b/src/simulation/m_weno.fpp @@ -979,7 +979,7 @@ contains ! Borges, et al. (2008) tau = abs(beta(1) - beta(0)) do q = 0, weno_num_stencils - alpha(q) = d_cbL_${XYZ}$ (q, j)/(1._wp + tau/beta(q)**2._wp) + alpha(q) = d_cbL_${XYZ}$ (q, j)*(1._wp + tau/beta(q)) end do end if From 219ff34b0b5bc2e8449d96e43589ab7bf992d304 Mon Sep 17 00:00:00 2001 From: Daniel Vickers Date: Mon, 20 Apr 2026 14:37:16 -0400 Subject: [PATCH 10/10] Added case optimization flags for AMD Flang --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index db86f137e7..78c33aab3c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -636,7 +636,7 @@ exit 0 target_compile_options(${a_target} PRIVATE -fopenmp) target_link_options(${a_target} PRIVATE -fopenmp) elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "LLVMFlang") - target_compile_options(${a_target} PRIVATE -fopenmp --offload-arch=gfx90a) + target_compile_options(${a_target} PRIVATE -fopenmp --offload-arch=gfx90a -fopenmp-target-fast -fopenmp-assume-threads-oversubscription -fopenmp-assume-teams-oversubscription) target_link_options(${a_target} PRIVATE -fopenmp --offload-arch=gfx90a) endif() endif()