|
MFC
Exascale flow solver
|
Dual-pass HLLD approximate Riemann solver for hypoelastic flows, with non-conservative interface-velocity coupling. More...
Functions/Subroutines | |
| integer function | f_hlld_wave_zone (s_l, s_lstar, s_m, s_rstar, s_r) |
| Classify the position of the interface (xi = 0) in the five-wave HLLD fan: 0 left of S_L, 1..4 for the four inner wedges, 5 right of S_R. Single definition of the wave-fan geometry shared by the flux fold, the NC face-velocity export, and the axisymmetric face-state pick, which must stay consistent. Valid fans only: a fallback face exports the HLL/one-sided traces instead of a fan classification. | |
| subroutine | s_hypo_hlld_riemann_solver (ql_prim_rsx_vf, dql_prim_dx_vf, dql_prim_dy_vf, dql_prim_dz_vf, ql_prim_vf, qr_prim_rsx_vf, dqr_prim_dx_vf, dqr_prim_dy_vf, dqr_prim_dz_vf, qr_prim_vf, q_prim_vf, flux_vf, flux_src_vf, flux_gsrc_vf, norm_dir, ix, iy, iz) |
| HLLD Riemann solver resolves all 5 waves for the hypoelastic equations: 1 entropy wave, 2 shear stress waves, 2 fast waves. | |
| subroutine | s_finalize_nc_iface_vel (nc_iface_vel_vf, norm_dir) |
| Copy the hypo interface velocities of a fused-solve pass from Riemann-space buffers to physical-space output arrays, called after the Riemann solver for each sweep direction. The plain routine handles the hat_L-anchored values (nc_iface_vel_rsx; used when hypo_nc_mode_interface is active, and as the hat_L pass of the dual-pass HLLD solve); the _hatR routine handles the hat_R-anchored values (nc_iface_vel_hatR_rsx) of the dual-pass solve. Both routines are emitted from one template so the two passes cannot drift apart. | |
| subroutine | s_finalize_nc_iface_vel_hatr (nc_iface_vel_vf, norm_dir) |
Variables | |
| real(wp), parameter | g_eff_roundoff_factor = 4._wp |
| Four-epsilon roundoff band for G_eff: two mixture products, their sum, and the final signed sum. Relative to the operand scale; not a physical stiffness cutoff. | |
Dual-pass HLLD approximate Riemann solver for hypoelastic flows, with non-conservative interface-velocity coupling.
| integer function m_riemann_solver_hypo_hlld::f_hlld_wave_zone | ( | real(wp), intent(in) | s_l, |
| real(wp), intent(in) | s_lstar, | ||
| real(wp), intent(in) | s_m, | ||
| real(wp), intent(in) | s_rstar, | ||
| real(wp), intent(in) | s_r ) |
Classify the position of the interface (xi = 0) in the five-wave HLLD fan: 0 left of S_L, 1..4 for the four inner wedges, 5 right of S_R. Single definition of the wave-fan geometry shared by the flux fold, the NC face-velocity export, and the axisymmetric face-state pick, which must stay consistent. Valid fans only: a fallback face exports the HLL/one-sided traces instead of a fan classification.
Definition at line 371 of file m_riemann_solver_hypo_hlld.fpp.f90.
| subroutine m_riemann_solver_hypo_hlld::s_finalize_nc_iface_vel | ( | type(scalar_field), dimension(:), intent(inout) | nc_iface_vel_vf, |
| integer, intent(in) | norm_dir ) |
Copy the hypo interface velocities of a fused-solve pass from Riemann-space buffers to physical-space output arrays, called after the Riemann solver for each sweep direction. The plain routine handles the hat_L-anchored values (nc_iface_vel_rsx; used when hypo_nc_mode_interface is active, and as the hat_L pass of the dual-pass HLLD solve); the _hatR routine handles the hat_R-anchored values (nc_iface_vel_hatR_rsx) of the dual-pass solve. Both routines are emitted from one template so the two passes cannot drift apart.
| nc_iface_vel_vf | Output: physical velocity components at interfaces |
| norm_dir | Sweep direction (1=x, 2=y, 3=z) |
Definition at line 4512 of file m_riemann_solver_hypo_hlld.fpp.f90.
| subroutine m_riemann_solver_hypo_hlld::s_finalize_nc_iface_vel_hatr | ( | type(scalar_field), dimension(:), intent(inout) | nc_iface_vel_vf, |
| integer, intent(in) | norm_dir ) |
Definition at line 4648 of file m_riemann_solver_hypo_hlld.fpp.f90.
| subroutine m_riemann_solver_hypo_hlld::s_hypo_hlld_riemann_solver | ( | real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) | ql_prim_rsx_vf, |
| type(scalar_field), dimension(:), intent(inout), allocatable | dql_prim_dx_vf, | ||
| type(scalar_field), dimension(:), intent(inout), allocatable | dql_prim_dy_vf, | ||
| type(scalar_field), dimension(:), intent(inout), allocatable | dql_prim_dz_vf, | ||
| type(scalar_field), dimension(:), intent(inout), allocatable | ql_prim_vf, | ||
| real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) | qr_prim_rsx_vf, | ||
| type(scalar_field), dimension(:), intent(inout), allocatable | dqr_prim_dx_vf, | ||
| type(scalar_field), dimension(:), intent(inout), allocatable | dqr_prim_dy_vf, | ||
| type(scalar_field), dimension(:), intent(inout), allocatable | dqr_prim_dz_vf, | ||
| type(scalar_field), dimension(:), intent(inout), allocatable | qr_prim_vf, | ||
| type(scalar_field), dimension(sys_size), intent(in) | q_prim_vf, | ||
| type(scalar_field), dimension(sys_size), intent(inout) | flux_vf, | ||
| type(scalar_field), dimension(sys_size), intent(inout) | flux_src_vf, | ||
| type(scalar_field), dimension(sys_size), intent(inout) | flux_gsrc_vf, | ||
| integer, intent(in) | norm_dir, | ||
| type(int_bounds_info), intent(in) | ix, | ||
| type(int_bounds_info), intent(in) | iy, | ||
| type(int_bounds_info), intent(in) | iz ) |
HLLD Riemann solver resolves all 5 waves for the hypoelastic equations: 1 entropy wave, 2 shear stress waves, 2 fast waves.
Definition at line 427 of file m_riemann_solver_hypo_hlld.fpp.f90.
| real(wp), parameter m_riemann_solver_hypo_hlld::g_eff_roundoff_factor = 4._wp |
Four-epsilon roundoff band for G_eff: two mixture products, their sum, and the final signed sum. Relative to the operand scale; not a physical stiffness cutoff.
Definition at line 363 of file m_riemann_solver_hypo_hlld.fpp.f90.