MFC: Simulation
High-fidelity multiphase flow simulation
Loading...
Searching...
No Matches
m_rhs.fpp.f90 File Reference

Modules

module  m_rhs
 The module contains the subroutines used to calculate the right- hane-side (RHS) in the quasi-conservative, shock- and interface- capturing finite-volume framework for the multicomponent Navier- Stokes equations supplemented by appropriate advection equations used to capture the material interfaces. The system of equations is closed by the stiffened gas equation of state, as well as any required mixture relationships. Capillarity effects are included and are modeled by the means of a volume force acting across the diffuse material interface region. The implementation details of surface tension may be found in Perigaud and Saurel (2005). Note that both viscous and surface tension effects are only available in the volume fraction model.
 

Functions/Subroutines

impure subroutine, public m_rhs::s_initialize_rhs_module
 The computation of parameters, the allocation of memory, the association of pointers and/or the execution of any other procedures that are necessary to setup the module.
 
impure subroutine, public m_rhs::s_compute_rhs (q_cons_vf, q_t_sf, q_prim_vf, bc_type, rhs_vf, pb_in, rhs_pb, mv_in, rhs_mv, t_step, time_avg, stage)
 
subroutine m_rhs::s_compute_advection_source_term (idir, rhs_vf, q_cons_vf, q_prim_vf, flux_src_n_vf)
 
subroutine s_add_directional_advection_source_terms (current_idir, rhs_vf_arg, q_cons_vf_arg, q_prim_vf_arg, flux_src_n_vf_arg, kterm_arg)
 
subroutine m_rhs::s_compute_additional_physics_rhs (idir, q_prim_vf, rhs_vf, flux_src_n_in, dq_prim_dx_vf, dq_prim_dy_vf, dq_prim_dz_vf)
 
subroutine m_rhs::s_reconstruct_cell_boundary_values (v_vf, vl_x, vl_y, vl_z, vr_x, vr_y, vr_z, norm_dir)
 The purpose of this subroutine is to WENO-reconstruct the left and the right cell-boundary values, including values at the Gaussian quadrature points, from the cell-averaged variables.
 
subroutine m_rhs::s_reconstruct_cell_boundary_values_first_order (v_vf, vl_x, vl_y, vl_z, vr_x, vr_y, vr_z, norm_dir)
 
impure subroutine, public m_rhs::s_finalize_rhs_module
 Module deallocation and/or disassociation procedures.
 

Variables

type(vector_fieldm_rhs::q_cons_qp
 
type(vector_fieldm_rhs::q_prim_qp
 
type(scalar_field), dimension(:), allocatable m_rhs::tau_re_vf
 
type(vector_fieldm_rhs::gm_alpha_qp
 The gradient magnitude of the volume fractions at cell-interior Gaussian quadrature points. gm_alpha_qp is calculated from individual first-order spatial derivatives located in dq_prim_ds_qp.
 
type(vector_field), dimension(:), allocatable m_rhs::ql_prim
 
type(vector_field), dimension(:), allocatable m_rhs::qr_prim
 
type(int_bounds_infom_rhs::iv
 Vector field indical bounds.
 
real(wp), dimension(:, :, :), allocatable m_rhs::blkmod1
 
real(wp), dimension(:, :, :), allocatable m_rhs::blkmod2
 
real(wp), dimension(:, :, :), allocatable m_rhs::alpha1
 
real(wp), dimension(:, :, :), allocatable m_rhs::alpha2
 
real(wp), dimension(:, :, :), allocatable m_rhs::kterm
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::ql_rsx_vf
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::ql_rsy_vf
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::ql_rsz_vf
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::qr_rsx_vf
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::qr_rsy_vf
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::qr_rsz_vf
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::dql_rsx_vf
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::dql_rsy_vf
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::dql_rsz_vf
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::dqr_rsx_vf
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::dqr_rsy_vf
 
real(wp), dimension(:, :, :, :), allocatable m_rhs::dqr_rsz_vf
 
real(wp), dimension(:, :, :), allocatable m_rhs::nbub
 Bubble number density.
 
The first-order spatial derivatives of the primitive variables at cell-

interior Gaussian quadrature points. These are WENO-reconstructed from their respective cell-average values, obtained through the application of the divergence theorem on the integral-average cell-boundary values of the primitive variables, located in qK_prim_n, where K = L or R.

type(vector_field), dimension(:), allocatable m_rhs::dq_prim_dx_qp
 
type(vector_field), dimension(:), allocatable m_rhs::dq_prim_dy_qp
 
type(vector_field), dimension(:), allocatable m_rhs::dq_prim_dz_qp
 
The left and right WENO-reconstructed cell-boundary values of the cell-

average gradient magnitude of volume fractions, located in gm_alpha_qp.

type(vector_field), dimension(:), allocatable m_rhs::dql_prim_dx_n
 
type(vector_field), dimension(:), allocatable m_rhs::dql_prim_dy_n
 
type(vector_field), dimension(:), allocatable m_rhs::dql_prim_dz_n
 
type(vector_field), dimension(:), allocatable m_rhs::dqr_prim_dx_n
 
type(vector_field), dimension(:), allocatable m_rhs::dqr_prim_dy_n
 
type(vector_field), dimension(:), allocatable m_rhs::dqr_prim_dz_n
 
type(vector_field), dimension(:), allocatable m_rhs::gm_alphal_n
 
type(vector_field), dimension(:), allocatable m_rhs::gm_alphar_n
 
The cell-boundary values of the fluxes (src - source, gsrc - geometrical

source). These are computed by applying the chosen Riemann problem solver .on the left and right cell-boundary values of the primitive variables

type(vector_field), dimension(:), allocatable m_rhs::flux_n
 
type(vector_field), dimension(:), allocatable m_rhs::flux_src_n
 
type(vector_field), dimension(:), allocatable m_rhs::flux_gsrc_n
 
Indical bounds in the x-, y- and z-directions
type(int_bounds_infom_rhs::irx
 
type(int_bounds_infom_rhs::iry
 
type(int_bounds_infom_rhs::irz
 
type(int_bounds_infom_rhs::is1
 
type(int_bounds_infom_rhs::is2
 
type(int_bounds_infom_rhs::is3
 
Saved fluxes for testing
type(scalar_fieldm_rhs::alf_sum
 

Function/Subroutine Documentation

◆ s_add_directional_advection_source_terms()

subroutine s_compute_advection_source_term::s_add_directional_advection_source_terms ( integer, intent(in) current_idir,
type(scalar_field), dimension(sys_size), intent(inout) rhs_vf_arg,
type(vector_field), intent(in) q_cons_vf_arg,
type(vector_field), intent(in) q_prim_vf_arg,
type(vector_field), intent(in) flux_src_n_vf_arg,
real(wp), dimension(:, :, :), intent(in), allocatable kterm_arg )
private
Here is the caller graph for this function: