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

Assembles the right-hand side of the governing equations using finite-volume flux differencing, Riemann solvers, and physical source terms. More...

Functions/Subroutines

impure subroutine, public 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 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)
 Computes the right-hand side of the semi-discrete governing equations for a single time stage.
subroutine s_compute_advection_source_term (idir, rhs_vf, q_cons_vf, q_prim_vf, flux_src_n_vf)
 Accumulates advection source contributions from a given coordinate direction into the RHS.
subroutine 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)
 Adds viscous, surface-tension, and species-diffusion source flux contributions to the RHS for a given direction.
subroutine 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 s_reconstruct_cell_boundary_values_first_order (v_vf, vl_x, vl_y, vl_z, vr_x, vr_y, vr_z, norm_dir)
 Performs first-order (piecewise constant) reconstruction of left and right cell-boundary values.
impure subroutine, public s_finalize_rhs_module
 Module deallocation and/or disassociation procedures.

Variables

type(vector_fieldq_cons_qp
type(vector_fieldq_prim_qp
type(scalar_field), dimension(:), allocatable tau_re_vf
type(vector_fieldgm_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 ql_prim
type(vector_field), dimension(:), allocatable qr_prim
type(int_bounds_infoiv
 Vector field indical bounds.
real(wp), dimension(:, :, :), allocatable blkmod1
real(wp), dimension(:, :, :), allocatable blkmod2
real(wp), dimension(:, :, :), allocatable alpha1
real(wp), dimension(:, :, :), allocatable alpha2
real(wp), dimension(:, :, :), allocatable kterm
real(wp), dimension(:, :, :, :), allocatable ql_rsx_vf
real(wp), dimension(:, :, :, :), allocatable ql_rsy_vf
real(wp), dimension(:, :, :, :), allocatable ql_rsz_vf
real(wp), dimension(:, :, :, :), allocatable qr_rsx_vf
real(wp), dimension(:, :, :, :), allocatable qr_rsy_vf
real(wp), dimension(:, :, :, :), allocatable qr_rsz_vf
real(wp), dimension(:, :, :, :), allocatable dql_rsx_vf
real(wp), dimension(:, :, :, :), allocatable dql_rsy_vf
real(wp), dimension(:, :, :, :), allocatable dql_rsz_vf
real(wp), dimension(:, :, :, :), allocatable dqr_rsx_vf
real(wp), dimension(:, :, :, :), allocatable dqr_rsy_vf
real(wp), dimension(:, :, :, :), allocatable dqr_rsz_vf
real(wp), dimension(:, :, :), allocatable 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 dq_prim_dx_qp
type(vector_field), dimension(:), allocatable dq_prim_dy_qp
type(vector_field), dimension(:), allocatable 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 dql_prim_dx_n
type(vector_field), dimension(:), allocatable dql_prim_dy_n
type(vector_field), dimension(:), allocatable dql_prim_dz_n
type(vector_field), dimension(:), allocatable dqr_prim_dx_n
type(vector_field), dimension(:), allocatable dqr_prim_dy_n
type(vector_field), dimension(:), allocatable dqr_prim_dz_n
type(vector_field), dimension(:), allocatable gm_alphal_n
type(vector_field), dimension(:), allocatable 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 flux_n
type(vector_field), dimension(:), allocatable flux_src_n
type(vector_field), dimension(:), allocatable flux_gsrc_n
Indical bounds in the x-, y- and z-directions
type(int_bounds_infoirx
type(int_bounds_infoiry
type(int_bounds_infoirz
type(int_bounds_infois1
type(int_bounds_infois2
type(int_bounds_infois3
Saved fluxes for testing
type(scalar_fieldalf_sum

Detailed Description

Assembles the right-hand side of the governing equations using finite-volume flux differencing, Riemann solvers, and physical source terms.

Function/Subroutine Documentation

◆ s_compute_additional_physics_rhs()

subroutine m_rhs::s_compute_additional_physics_rhs ( integer, intent(in) idir,
type(scalar_field), dimension(sys_size), intent(in) q_prim_vf,
type(scalar_field), dimension(sys_size), intent(inout) rhs_vf,
type(scalar_field), dimension(sys_size), intent(in) flux_src_n_in,
type(scalar_field), dimension(sys_size), intent(in) dq_prim_dx_vf,
type(scalar_field), dimension(sys_size), intent(in) dq_prim_dy_vf,
type(scalar_field), dimension(sys_size), intent(in) dq_prim_dz_vf )

Adds viscous, surface-tension, and species-diffusion source flux contributions to the RHS for a given direction.

Definition at line 8697 of file m_rhs.fpp.f90.

Here is the caller graph for this function:

◆ s_compute_advection_source_term()

subroutine m_rhs::s_compute_advection_source_term ( integer, intent(in) idir,
type(scalar_field), dimension(sys_size), intent(inout) rhs_vf,
type(vector_field), intent(inout) q_cons_vf,
type(vector_field), intent(inout) q_prim_vf,
type(vector_field), intent(inout) flux_src_n_vf )

Accumulates advection source contributions from a given coordinate direction into the RHS.

Definition at line 7394 of file m_rhs.fpp.f90.

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

◆ s_compute_rhs()

impure subroutine, public m_rhs::s_compute_rhs ( type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf,
type(scalar_field), intent(inout) q_t_sf,
type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf,
type(integer_field), dimension(1:num_dims, 1:2), intent(in) bc_type,
type(scalar_field), dimension(sys_size), intent(inout) rhs_vf,
real(stp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:), intent(inout) pb_in,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:), intent(inout) rhs_pb,
real(stp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:), intent(inout) mv_in,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:), intent(inout) rhs_mv,
integer, intent(in) t_step,
real(wp), intent(inout) time_avg,
integer, intent(in) stage )

Computes the right-hand side of the semi-discrete governing equations for a single time stage.

Definition at line 6689 of file m_rhs.fpp.f90.

Here is the call graph for this function:

◆ s_finalize_rhs_module()

impure subroutine, public m_rhs::s_finalize_rhs_module

Module deallocation and/or disassociation procedures.

Definition at line 9909 of file m_rhs.fpp.f90.

Here is the caller graph for this function:

◆ s_initialize_rhs_module()

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.

Definition at line 650 of file m_rhs.fpp.f90.

Here is the caller graph for this function:

◆ s_reconstruct_cell_boundary_values()

subroutine m_rhs::s_reconstruct_cell_boundary_values ( type(scalar_field), dimension(iv%beg:iv%end), intent(in) v_vf,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vl_x,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vl_y,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vl_z,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vr_x,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vr_y,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vr_z,
integer, intent(in) 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.

Parameters
v_vfCell-average variables
vL_xLeft reconstructed cell-boundary values in x
vL_yLeft reconstructed cell-boundary values in y
vL_zLeft reconstructed cell-boundary values in z
vR_xRight reconstructed cell-boundary values in x
vR_yRight reconstructed cell-boundary values in y
vR_zRight reconstructed cell-boundary values in z
norm_dirSplitting coordinate direction

Definition at line 9580 of file m_rhs.fpp.f90.

Here is the caller graph for this function:

◆ s_reconstruct_cell_boundary_values_first_order()

subroutine m_rhs::s_reconstruct_cell_boundary_values_first_order ( type(scalar_field), dimension(iv%beg:iv%end), intent(in) v_vf,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vl_x,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vl_y,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vl_z,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vr_x,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vr_y,
real(wp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:), intent(inout) vr_z,
integer, intent(in) norm_dir )

Performs first-order (piecewise constant) reconstruction of left and right cell-boundary values.

Definition at line 9674 of file m_rhs.fpp.f90.

Here is the caller graph for this function:

Variable Documentation

◆ alf_sum

type(scalar_field) m_rhs::alf_sum

Definition at line 581 of file m_rhs.fpp.f90.

◆ alpha1

real(wp), dimension(:, :, :), allocatable m_rhs::alpha1

Definition at line 595 of file m_rhs.fpp.f90.

◆ alpha2

real(wp), dimension(:, :, :), allocatable m_rhs::alpha2

Definition at line 595 of file m_rhs.fpp.f90.

◆ blkmod1

real(wp), dimension(:, :, :), allocatable m_rhs::blkmod1

Definition at line 595 of file m_rhs.fpp.f90.

◆ blkmod2

real(wp), dimension(:, :, :), allocatable m_rhs::blkmod2

Definition at line 595 of file m_rhs.fpp.f90.

◆ dq_prim_dx_qp

type(vector_field), dimension(:), allocatable m_rhs::dq_prim_dx_qp

Definition at line 401 of file m_rhs.fpp.f90.

◆ dq_prim_dy_qp

type(vector_field), dimension(:), allocatable m_rhs::dq_prim_dy_qp

Definition at line 401 of file m_rhs.fpp.f90.

◆ dq_prim_dz_qp

type(vector_field), dimension(:), allocatable m_rhs::dq_prim_dz_qp

Definition at line 401 of file m_rhs.fpp.f90.

◆ dql_prim_dx_n

type(vector_field), dimension(:), allocatable m_rhs::dql_prim_dx_n

Definition at line 420 of file m_rhs.fpp.f90.

◆ dql_prim_dy_n

type(vector_field), dimension(:), allocatable m_rhs::dql_prim_dy_n

Definition at line 420 of file m_rhs.fpp.f90.

◆ dql_prim_dz_n

type(vector_field), dimension(:), allocatable m_rhs::dql_prim_dz_n

Definition at line 420 of file m_rhs.fpp.f90.

◆ dql_rsx_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::dql_rsx_vf

Definition at line 597 of file m_rhs.fpp.f90.

◆ dql_rsy_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::dql_rsy_vf

Definition at line 597 of file m_rhs.fpp.f90.

◆ dql_rsz_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::dql_rsz_vf

Definition at line 597 of file m_rhs.fpp.f90.

◆ dqr_prim_dx_n

type(vector_field), dimension(:), allocatable m_rhs::dqr_prim_dx_n

Definition at line 421 of file m_rhs.fpp.f90.

◆ dqr_prim_dy_n

type(vector_field), dimension(:), allocatable m_rhs::dqr_prim_dy_n

Definition at line 421 of file m_rhs.fpp.f90.

◆ dqr_prim_dz_n

type(vector_field), dimension(:), allocatable m_rhs::dqr_prim_dz_n

Definition at line 421 of file m_rhs.fpp.f90.

◆ dqr_rsx_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::dqr_rsx_vf

Definition at line 597 of file m_rhs.fpp.f90.

◆ dqr_rsy_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::dqr_rsy_vf

Definition at line 597 of file m_rhs.fpp.f90.

◆ dqr_rsz_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::dqr_rsz_vf

Definition at line 597 of file m_rhs.fpp.f90.

◆ flux_gsrc_n

type(vector_field), dimension(:), allocatable m_rhs::flux_gsrc_n

Definition at line 504 of file m_rhs.fpp.f90.

◆ flux_n

type(vector_field), dimension(:), allocatable m_rhs::flux_n

Definition at line 502 of file m_rhs.fpp.f90.

◆ flux_src_n

type(vector_field), dimension(:), allocatable m_rhs::flux_src_n

Definition at line 503 of file m_rhs.fpp.f90.

◆ gm_alpha_qp

type(vector_field) m_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.

Definition at line 461 of file m_rhs.fpp.f90.

◆ gm_alphal_n

type(vector_field), dimension(:), allocatable m_rhs::gm_alphal_n

Definition at line 481 of file m_rhs.fpp.f90.

◆ gm_alphar_n

type(vector_field), dimension(:), allocatable m_rhs::gm_alphar_n

Definition at line 482 of file m_rhs.fpp.f90.

◆ irx

type(int_bounds_info) m_rhs::irx

Definition at line 552 of file m_rhs.fpp.f90.

◆ iry

type(int_bounds_info) m_rhs::iry

Definition at line 552 of file m_rhs.fpp.f90.

◆ irz

type(int_bounds_info) m_rhs::irz

Definition at line 552 of file m_rhs.fpp.f90.

◆ is1

Definition at line 565 of file m_rhs.fpp.f90.

◆ is2

Definition at line 565 of file m_rhs.fpp.f90.

◆ is3

Definition at line 565 of file m_rhs.fpp.f90.

◆ iv

type(int_bounds_info) m_rhs::iv

Vector field indical bounds.

Definition at line 537 of file m_rhs.fpp.f90.

◆ kterm

real(wp), dimension(:, :, :), allocatable m_rhs::kterm

Definition at line 595 of file m_rhs.fpp.f90.

◆ nbub

real(wp), dimension(:, :, :), allocatable m_rhs::nbub

Bubble number density.

Definition at line 632 of file m_rhs.fpp.f90.

◆ q_cons_qp

type(vector_field) m_rhs::q_cons_qp

Definition at line 366 of file m_rhs.fpp.f90.

◆ q_prim_qp

type(vector_field) m_rhs::q_prim_qp

Definition at line 382 of file m_rhs.fpp.f90.

◆ ql_prim

type(vector_field), dimension(:), allocatable m_rhs::ql_prim

Definition at line 522 of file m_rhs.fpp.f90.

◆ ql_rsx_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::ql_rsx_vf

Definition at line 596 of file m_rhs.fpp.f90.

◆ ql_rsy_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::ql_rsy_vf

Definition at line 596 of file m_rhs.fpp.f90.

◆ ql_rsz_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::ql_rsz_vf

Definition at line 596 of file m_rhs.fpp.f90.

◆ qr_prim

type(vector_field), dimension(:), allocatable m_rhs::qr_prim

Definition at line 522 of file m_rhs.fpp.f90.

◆ qr_rsx_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::qr_rsx_vf

Definition at line 596 of file m_rhs.fpp.f90.

◆ qr_rsy_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::qr_rsy_vf

Definition at line 596 of file m_rhs.fpp.f90.

◆ qr_rsz_vf

real(wp), dimension(:, :, :, :), allocatable m_rhs::qr_rsz_vf

Definition at line 596 of file m_rhs.fpp.f90.

◆ tau_re_vf

type(scalar_field), dimension(:), allocatable m_rhs::tau_re_vf

Definition at line 448 of file m_rhs.fpp.f90.