MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_riemann_solvers.fpp.f90 File Reference

Contains module m_riemann_solvers. More...

Go to the source code of this file.

Modules

module  m_riemann_solvers
 Approximate and exact Riemann solvers (HLL, HLLC, HLLD, exact) for the multicomponent Navier–Stokes equations.

Functions/Subroutines

subroutine, public m_riemann_solvers::s_riemann_solver (ql_prim_rsx_vf, ql_prim_rsy_vf, ql_prim_rsz_vf, dql_prim_dx_vf, dql_prim_dy_vf, dql_prim_dz_vf, ql_prim_vf, qr_prim_rsx_vf, qr_prim_rsy_vf, qr_prim_rsz_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)
 Dispatch to the subroutines that are utilized to compute the Riemann problem solution. For additional information please reference: 1) s_hll_riemann_solver 2) s_hllc_riemann_solver 3) s_lf_riemann_solver 4) s_hlld_riemann_solver.
subroutine m_riemann_solvers::s_compute_viscous_source_flux (vell_vf, dvell_dx_vf, dvell_dy_vf, dvell_dz_vf, velr_vf, dvelr_dx_vf, dvelr_dy_vf, dvelr_dz_vf, flux_src_vf, norm_dir, ix, iy, iz)
 Dispatch to the subroutines that are utilized to compute the viscous source fluxes for either Cartesian or cylindrical geometries. For more information please refer to: 1) s_compute_cartesian_viscous_source_flux 2) s_compute_cylindrical_viscous_source_flux.
subroutine, public m_riemann_solvers::s_hll_riemann_solver (ql_prim_rsx_vf, ql_prim_rsy_vf, ql_prim_rsz_vf, dql_prim_dx_vf, dql_prim_dy_vf, dql_prim_dz_vf, ql_prim_vf, qr_prim_rsx_vf, qr_prim_rsy_vf, qr_prim_rsz_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)
 HLL approximate Riemann solver, Harten et al. SIAM Review (1983).
subroutine, public m_riemann_solvers::s_lf_riemann_solver (ql_prim_rsx_vf, ql_prim_rsy_vf, ql_prim_rsz_vf, dql_prim_dx_vf, dql_prim_dy_vf, dql_prim_dz_vf, ql_prim_vf, qr_prim_rsx_vf, qr_prim_rsy_vf, qr_prim_rsz_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)
 Lax-Friedrichs (Rusanov) approximate Riemann solver.
subroutine, public m_riemann_solvers::s_hllc_riemann_solver (ql_prim_rsx_vf, ql_prim_rsy_vf, ql_prim_rsz_vf, dql_prim_dx_vf, dql_prim_dy_vf, dql_prim_dz_vf, ql_prim_vf, qr_prim_rsx_vf, qr_prim_rsy_vf, qr_prim_rsz_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)
 HLLC Riemann solver with contact restoration, Toro et al. Shock Waves (1994).
subroutine, public m_riemann_solvers::s_hlld_riemann_solver (ql_prim_rsx_vf, ql_prim_rsy_vf, ql_prim_rsz_vf, dql_prim_dx_vf, dql_prim_dy_vf, dql_prim_dz_vf, ql_prim_vf, qr_prim_rsx_vf, qr_prim_rsy_vf, qr_prim_rsz_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 for MHD, Miyoshi & Kusano JCP (2005).
impure subroutine, public m_riemann_solvers::s_initialize_riemann_solvers_module
 Initialize the Riemann solvers module.
subroutine m_riemann_solvers::s_populate_riemann_states_variables_buffers (ql_prim_rsx_vf, ql_prim_rsy_vf, ql_prim_rsz_vf, dql_prim_dx_vf, dql_prim_dy_vf, dql_prim_dz_vf, qr_prim_rsx_vf, qr_prim_rsy_vf, qr_prim_rsz_vf, dqr_prim_dx_vf, dqr_prim_dy_vf, dqr_prim_dz_vf, norm_dir, ix, iy, iz)
 Populate the left and right Riemann state variable buffers based on boundary conditions.
subroutine m_riemann_solvers::s_initialize_riemann_solver (flux_src_vf, norm_dir)
 Set up the chosen Riemann solver algorithm for the current direction.
subroutine m_riemann_solvers::s_compute_cylindrical_viscous_source_flux (vell_vf, dvell_dx_vf, dvell_dy_vf, dvell_dz_vf, velr_vf, dvelr_dx_vf, dvelr_dy_vf, dvelr_dz_vf, flux_src_vf, norm_dir, ix, iy, iz)
 Compute cylindrical viscous source flux contributions for momentum and energy.
subroutine m_riemann_solvers::s_compute_cartesian_viscous_source_flux (dvell_dx_vf, dvell_dy_vf, dvell_dz_vf, dvelr_dx_vf, dvelr_dy_vf, dvelr_dz_vf, flux_src_vf, norm_dir)
 Compute Cartesian viscous source flux contributions for momentum and energy.
subroutine m_riemann_solvers::s_calculate_shear_stress_tensor (vel_grad_avg, re_shear, divergence_v, tau_shear_out)
 Compute shear stress tensor components.
subroutine m_riemann_solvers::s_calculate_bulk_stress_tensor (re_bulk, divergence_v, tau_bulk_out)
 Compute bulk stress tensor components (diagonal only).
subroutine m_riemann_solvers::s_finalize_riemann_solver (flux_vf, flux_src_vf, flux_gsrc_vf, norm_dir)
 Deallocation and/or disassociation procedures that are needed to finalize the selected Riemann problem solver.
impure subroutine, public m_riemann_solvers::s_finalize_riemann_solvers_module
 Module deallocation and/or disassociation procedures.

Variables

real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::vel_src_rsx_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::vel_src_rsy_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::vel_src_rsz_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::mom_sp_rsx_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::mom_sp_rsy_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::mom_sp_rsz_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::re_avg_rsx_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::re_avg_rsy_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::re_avg_rsz_vf
real(wp), dimension(:), allocatable m_riemann_solvers::gs_rs
real(wp), dimension(:,:), allocatable m_riemann_solvers::res_gs
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::flux_rsx_vf
 The cell-boundary values of the fluxes (src - source) that are computed through the chosen Riemann problem solver, and the direct evaluation of source terms, by using the left and right states given in qK_prim_rs_vf, dqK_prim_ds_vf where ds = dx, dy or dz.
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::flux_src_rsx_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::flux_rsy_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::flux_src_rsy_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::flux_rsz_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::flux_src_rsz_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::flux_gsrc_rsx_vf
 The cell-boundary values of the geometrical source flux that are computed through the chosen Riemann problem solver by using the left and right states given in qK_prim_rs_vf. Currently 2D axisymmetric for inviscid only.
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::flux_gsrc_rsy_vf
real(wp), dimension(:,:,:,:), allocatable m_riemann_solvers::flux_gsrc_rsz_vf
Indical bounds in the s1-, s2- and s3-directions
type(int_bounds_infom_riemann_solvers::is1
type(int_bounds_infom_riemann_solvers::is2
type(int_bounds_infom_riemann_solvers::is3
type(int_bounds_infom_riemann_solvers::isx
type(int_bounds_infom_riemann_solvers::isy
type(int_bounds_infom_riemann_solvers::isz

Detailed Description

Contains module m_riemann_solvers.

Definition in file m_riemann_solvers.fpp.f90.