|
MFC
Exascale flow solver
|
Contains module m_riemann_state. More...
Go to the source code of this file.
Modules | |
| module | m_riemann_state |
| Shared Riemann-solver module state and the per-sweep setup, state-buffer population, viscous source flux, and finalization helpers. | |
Functions/Subroutines | |
| subroutine | m_riemann_state::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, q_prim_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 | m_riemann_state::s_populate_riemann_states_variables_buffers (ql_prim_rsx_vf, dql_prim_dx_vf, dql_prim_dy_vf, dql_prim_dz_vf, qr_prim_rsx_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_state::s_initialize_riemann_solver (flux_src_vf, norm_dir) |
| Set up the chosen Riemann solver algorithm for the current direction. | |
| subroutine | m_riemann_state::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, q_prim_vf, norm_dir, ix, iy, iz) |
| Compute cylindrical viscous source flux contributions for momentum and energy. | |
| subroutine | m_riemann_state::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, q_prim_vf, norm_dir) |
| Compute Cartesian viscous source flux contributions for momentum and energy. | |
| subroutine | m_riemann_state::s_calculate_shear_stress_tensor (vel_grad_avg, re_shear, divergence_v, tau_shear_out) |
| Compute shear stress tensor components. | |
| subroutine | m_riemann_state::s_calculate_bulk_stress_tensor (re_bulk, divergence_v, tau_bulk_out) |
| Compute bulk stress tensor components (diagonal only). | |
| subroutine | m_riemann_state::s_accumulate_mixture_properties (nf, alpha_rho_k, alpha_k, rho_k, gamma_k, pi_inf_k, qv_k) |
| Accumulate the mixture density, specific heat ratio function, liquid stiffness function, and internal energy reference of one Riemann state from its partial densities and volume fractions. The number of fluids is an explicit argument because the 5-equation bubble model accumulates over num_fluids - 1 fluids. | |
| subroutine | m_riemann_state::s_compute_interface_reynolds (alpha_k, re_k, re_size_loc1, re_size_loc2) |
| Compute the shear and volume Reynolds numbers of one Riemann state by inverse-weighting the fluid Reynolds numbers with the volume fractions. | |
| subroutine | m_riemann_state::s_compute_hypoelastic_interface_energy (nf, alpha_l, alpha_r, damage_l, damage_r, tau_e_l, tau_e_r, g_l, g_r, e_l, e_r) |
| Accumulate the hypoelastic stress contribution to the energies of the left and right Riemann states: mix the shear modulus over the fluids, scale it by the continuum damage state when damage is modeled, and add the elastic energy of each stress component (doubled for the shear components) when both mixture moduli are non-negligible. The elastic shear stresses are loaded from the state buffers by the caller, which reuses them for the stress fluxes and elastic wave speeds. The G > verysmall gate is a deliberate maintainer ruling that replaces HLL's former hard-coded G > 1000 stability floor, retiring its "TODO take out if statement if stable without". | |
| real(wp) function | m_riemann_state::f_compute_hllc_star_momentum_flux (rho_l, rho_r, vel_l_norm, vel_r_norm, s_m, s_p, s_s, xi_l, xi_r, xi_m, xi_p, dir_flg_norm) |
| Compute the advective part of the HLLC star-state momentum flux in the wave-normal direction (pressure excluded), used to assemble the geometrical source flux of the cylindrical and azimuthal sweeps. | |
| subroutine | m_riemann_state::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. | |
Variables | |
| real(wp), dimension(:,:,:,:), allocatable | m_riemann_state::vel_src_rsx_vf |
| real(wp), dimension(:,:,:,:), allocatable | m_riemann_state::mom_sp_rsx_vf |
| real(wp), dimension(:,:,:,:), allocatable | m_riemann_state::re_avg_rsx_vf |
| real(wp), dimension(:), allocatable | m_riemann_state::gs_rs |
| real(wp), dimension(:,:), allocatable | m_riemann_state::res_gs |
| real(wp), dimension(:,:,:,:), allocatable | m_riemann_state::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_state::flux_src_rsx_vf |
| real(wp), dimension(:,:,:,:), allocatable | m_riemann_state::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. | |
Indical bounds in the s1-, s2- and s3-directions | |
| type(int_bounds_info) | m_riemann_state::is1 |
| type(int_bounds_info) | m_riemann_state::is2 |
| type(int_bounds_info) | m_riemann_state::is3 |
| type(int_bounds_info) | m_riemann_state::isx |
| type(int_bounds_info) | m_riemann_state::isy |
| type(int_bounds_info) | m_riemann_state::isz |
Contains module m_riemann_state.
Definition in file m_riemann_state.fpp.f90.