From bfe68c609bf90d4df6b14e441cdd987564b9a4e3 Mon Sep 17 00:00:00 2001 From: Dimitrios Adam Date: Fri, 26 Sep 2025 14:47:48 -0400 Subject: [PATCH] Reduce multiple Weno Recon. --- src/simulation/m_rhs.fpp | 95 ++++++++++++++++++++++++++++------------ 1 file changed, 68 insertions(+), 27 deletions(-) diff --git a/src/simulation/m_rhs.fpp b/src/simulation/m_rhs.fpp index e6a90499a5..890702dbbf 100644 --- a/src/simulation/m_rhs.fpp +++ b/src/simulation/m_rhs.fpp @@ -762,34 +762,75 @@ contains call nvtxStartRange("RHS-WENO") if (.not. surface_tension) then - ! Reconstruct densitiess - iv%beg = 1; iv%end = sys_size - call s_reconstruct_cell_boundary_values( & - q_prim_qp%vf(1:sys_size), & - qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & - qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & - id) + if (all(Re_size == 0)) then + ! Reconstruct densitiess + iv%beg = 1; iv%end = sys_size + call s_reconstruct_cell_boundary_values( & + q_prim_qp%vf(1:sys_size), & + qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & + qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & + id) + else + iv%beg = 1; iv%end = contxe + call s_reconstruct_cell_boundary_values( & + q_prim_qp%vf(iv%beg:iv%end), & + qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & + qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & + id) + + iv%beg = E_idx; iv%end = sys_size + call s_reconstruct_cell_boundary_values( & + q_prim_qp%vf(iv%beg:iv%end), & + qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & + qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & + id) + end if + else - iv%beg = 1; iv%end = E_idx - 1 - call s_reconstruct_cell_boundary_values( & - q_prim_qp%vf(iv%beg:iv%end), & - qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & - qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & - id) - - iv%beg = E_idx; iv%end = E_idx - call s_reconstruct_cell_boundary_values_first_order( & - q_prim_qp%vf(E_idx), & - qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & - qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & - id) - - iv%beg = E_idx + 1; iv%end = sys_size - call s_reconstruct_cell_boundary_values( & - q_prim_qp%vf(iv%beg:iv%end), & - qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & - qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & - id) + if (all(Re_size == 0)) then + iv%beg = 1; iv%end = E_idx - 1 + call s_reconstruct_cell_boundary_values( & + q_prim_qp%vf(iv%beg:iv%end), & + qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & + qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & + id) + + iv%beg = E_idx; iv%end = E_idx + call s_reconstruct_cell_boundary_values_first_order( & + q_prim_qp%vf(E_idx), & + qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & + qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & + id) + + iv%beg = E_idx + 1; iv%end = sys_size + call s_reconstruct_cell_boundary_values( & + q_prim_qp%vf(iv%beg:iv%end), & + qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & + qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & + id) + else + iv%beg = 1; iv%end = contxe + call s_reconstruct_cell_boundary_values( & + q_prim_qp%vf(iv%beg:iv%end), & + qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & + qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & + id) + + iv%beg = E_idx; iv%end = E_idx + call s_reconstruct_cell_boundary_values_first_order( & + q_prim_qp%vf(E_idx), & + qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & + qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & + id) + + iv%beg = E_idx + 1; iv%end = sys_size + call s_reconstruct_cell_boundary_values( & + q_prim_qp%vf(iv%beg:iv%end), & + qL_rsx_vf, qL_rsy_vf, qL_rsz_vf, & + qR_rsx_vf, qR_rsy_vf, qR_rsz_vf, & + id) + end if + end if ! Reconstruct viscous derivatives for viscosity