MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_riemann_solver_hypo_hlld Module Reference

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.

Detailed Description

Dual-pass HLLD approximate Riemann solver for hypoelastic flows, with non-conservative interface-velocity coupling.

Function/Subroutine Documentation

◆ f_hlld_wave_zone()

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.

Here is the caller graph for this function:

◆ s_finalize_nc_iface_vel()

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.

Parameters
nc_iface_vel_vfOutput: physical velocity components at interfaces
norm_dirSweep direction (1=x, 2=y, 3=z)

Definition at line 4512 of file m_riemann_solver_hypo_hlld.fpp.f90.

◆ s_finalize_nc_iface_vel_hatr()

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.

◆ s_hypo_hlld_riemann_solver()

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.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ g_eff_roundoff_factor

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.