MFC: Simulation
High-fidelity multiphase flow simulation
Loading...
Searching...
No Matches
m_cbc Module Reference

The module features a large database of characteristic boundary conditions (CBC) for the Euler system of equations. This system is augmented by the appropriate advection equations utilized to capture the material interfaces. The closure is achieved by the stiffened equation of state and mixture relations. At this time, the following CBC are available: 1) Slip Wall 2) Nonreflecting Subsonic Buffer 3) Nonreflecting Subsonic Inflow 4) Nonreflecting Subsonic Outflow 5) Force-Free Subsonic Outflow 6) Constant Pressure Subsonic Outflow 7) Supersonic Inflow 8) Supersonic Outflow Please refer to Thompson (1987, 1990) for detailed descriptions. More...

Functions/Subroutines

impure subroutine, public s_initialize_cbc_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.
 
subroutine s_compute_cbc_coefficients (cbc_dir_in, cbc_loc_in)
 Compute CBC coefficients.
 
subroutine s_associate_cbc_coefficients_pointers (cbc_dir_in, cbc_loc_in)
 
subroutine, public s_cbc (q_prim_vf, flux_vf, flux_src_vf, cbc_dir_norm, cbc_loc_norm, ix, iy, iz)
 The following is the implementation of the CBC based on the work of Thompson (1987, 1990) on hyperbolic systems. The CBC is indirectly applied in the computation of the right-hand-side (RHS) near the relevant domain boundary through the modification of the fluxes.
 
subroutine s_initialize_cbc (q_prim_vf, flux_vf, flux_src_vf, ix, iy, iz)
 The computation of parameters, the allocation of memory, the association of pointers and/or the execution of any other procedures that are required for the setup of the selected CBC.
 
subroutine s_finalize_cbc (flux_vf, flux_src_vf)
 Deallocation and/or the disassociation procedures that are necessary in order to finalize the CBC application.
 
elemental subroutine s_any_cbc_boundaries (toggle)
 
impure subroutine, public s_finalize_cbc_module
 Module deallocation and/or disassociation procedures.
 

Variables

real(wp), dimension(:, :, :, :), allocatable q_prim_rsx_vf
 
real(wp), dimension(:, :, :, :), allocatable q_prim_rsy_vf
 
real(wp), dimension(:, :, :, :), allocatable q_prim_rsz_vf
 
real(wp), dimension(:, :, :, :), allocatable f_rsx_vf
 
real(wp), dimension(:, :, :, :), allocatable f_src_rsx_vf
 
real(wp), dimension(:, :, :, :), allocatable f_rsy_vf
 
real(wp), dimension(:, :, :, :), allocatable f_src_rsy_vf
 
real(wp), dimension(:, :, :, :), allocatable f_rsz_vf
 
real(wp), dimension(:, :, :, :), allocatable f_src_rsz_vf
 
real(wp), dimension(:, :, :, :), allocatable flux_rsx_vf_l
 
real(wp), dimension(:, :, :, :), allocatable flux_src_rsx_vf_l
 
real(wp), dimension(:, :, :, :), allocatable flux_rsy_vf_l
 
real(wp), dimension(:, :, :, :), allocatable flux_src_rsy_vf_l
 
real(wp), dimension(:, :, :, :), allocatable flux_rsz_vf_l
 
real(wp), dimension(:, :, :, :), allocatable flux_src_rsz_vf_l
 
real(wp), dimension(:), allocatable ds
 Cell-width distribution in the s-direction.
 
real(wp), dimension(:, :), allocatable fd_coef_x
 Finite diff. coefficients x-dir.
 
real(wp), dimension(:, :), allocatable fd_coef_y
 Finite diff. coefficients y-dir.
 
real(wp), dimension(:, :), allocatable fd_coef_z
 Finite diff. coefficients z-dir.
 
real(wp), dimension(:, :, :), allocatable pi_coef_x
 Polynomial interpolant coefficients in x-dir.
 
real(wp), dimension(:, :, :), allocatable pi_coef_y
 Polynomial interpolant coefficients in y-dir.
 
real(wp), dimension(:, :, :), allocatable pi_coef_z
 Polynomial interpolant coefficients in z-dir.
 
type(int_bounds_infois1
 
type(int_bounds_infois2
 
type(int_bounds_infois3
 Indical bounds in the s1-, s2- and s3-directions.
 
integer dj
 
integer bcxb
 
integer bcxe
 
integer bcyb
 
integer bcye
 
integer bczb
 
integer bcze
 
integer cbc_dir
 
integer cbc_loc
 
integer flux_cbc_index
 
real(wp), dimension(:), allocatable pres_in
 
real(wp), dimension(:), allocatable pres_out
 
real(wp), dimension(:), allocatable del_in
 
real(wp), dimension(:), allocatable del_out
 
real(wp), dimension(:, :), allocatable vel_in
 
real(wp), dimension(:, :), allocatable vel_out
 
real(wp), dimension(:, :), allocatable alpha_rho_in
 
real(wp), dimension(:, :), allocatable alpha_in
 

Detailed Description

The module features a large database of characteristic boundary conditions (CBC) for the Euler system of equations. This system is augmented by the appropriate advection equations utilized to capture the material interfaces. The closure is achieved by the stiffened equation of state and mixture relations. At this time, the following CBC are available: 1) Slip Wall 2) Nonreflecting Subsonic Buffer 3) Nonreflecting Subsonic Inflow 4) Nonreflecting Subsonic Outflow 5) Force-Free Subsonic Outflow 6) Constant Pressure Subsonic Outflow 7) Supersonic Inflow 8) Supersonic Outflow Please refer to Thompson (1987, 1990) for detailed descriptions.

Function/Subroutine Documentation

◆ s_any_cbc_boundaries()

elemental subroutine m_cbc::s_any_cbc_boundaries ( logical, intent(inout) toggle)
Here is the caller graph for this function:

◆ s_associate_cbc_coefficients_pointers()

subroutine m_cbc::s_associate_cbc_coefficients_pointers ( integer, intent(in) cbc_dir_in,
integer, intent(in) cbc_loc_in )
Here is the caller graph for this function:

◆ s_cbc()

subroutine, public m_cbc::s_cbc ( 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,
integer, intent(in) cbc_dir_norm,
integer, intent(in) cbc_loc_norm,
type(int_bounds_info), intent(in) ix,
type(int_bounds_info), intent(in) iy,
type(int_bounds_info), intent(in) iz )

The following is the implementation of the CBC based on the work of Thompson (1987, 1990) on hyperbolic systems. The CBC is indirectly applied in the computation of the right-hand-side (RHS) near the relevant domain boundary through the modification of the fluxes.

Parameters
q_prim_vfCell-average primitive variables
flux_vfCell-boundary-average fluxes
flux_src_vfCell-boundary-average flux sources
cbc_dir_normCBC coordinate direction
cbc_loc_normCBC coordinate location
ixIndex bound in the first coordinate direction
iyIndex bound in the second coordinate direction
izIndex bound in the third coordinate direction

gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.

gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.

gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.

gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.

gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.

gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.

Here is the call graph for this function:

◆ s_compute_cbc_coefficients()

subroutine m_cbc::s_compute_cbc_coefficients ( integer, intent(in) cbc_dir_in,
integer, intent(in) cbc_loc_in )

Compute CBC coefficients.

Parameters
cbc_dir_inCBC coordinate direction
cbc_loc_inCBC coordinate location
Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_finalize_cbc()

subroutine m_cbc::s_finalize_cbc ( type(scalar_field), dimension(sys_size), intent(inout) flux_vf,
type(scalar_field), dimension(sys_size), intent(inout) flux_src_vf )

Deallocation and/or the disassociation procedures that are necessary in order to finalize the CBC application.

Parameters
flux_vfCell-boundary-average fluxes
flux_src_vfCell-boundary-average flux sources
Here is the caller graph for this function:

◆ s_finalize_cbc_module()

impure subroutine, public m_cbc::s_finalize_cbc_module

Module deallocation and/or disassociation procedures.

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

◆ s_initialize_cbc()

subroutine m_cbc::s_initialize_cbc ( type(scalar_field), dimension(sys_size), intent(in) q_prim_vf,
type(scalar_field), dimension(sys_size), intent(in) flux_vf,
type(scalar_field), dimension(sys_size), intent(in) flux_src_vf,
type(int_bounds_info), intent(in) ix,
type(int_bounds_info), intent(in) iy,
type(int_bounds_info), intent(in) iz )

The computation of parameters, the allocation of memory, the association of pointers and/or the execution of any other procedures that are required for the setup of the selected CBC.

Parameters
q_prim_vfCell-average primitive variables
flux_vfCell-boundary-average fluxes
flux_src_vfCell-boundary-average flux sources
ixIndex bound in the first coordinate direction
iyIndex bound in the second coordinate direction
izIndex bound in the third coordinate direction
Here is the caller graph for this function:

◆ s_initialize_cbc_module()

impure subroutine, public m_cbc::s_initialize_cbc_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.

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

Variable Documentation

◆ alpha_in

real(wp), dimension(:, :), allocatable m_cbc::alpha_in

◆ alpha_rho_in

real(wp), dimension(:, :), allocatable m_cbc::alpha_rho_in

◆ bcxb

integer m_cbc::bcxb

◆ bcxe

integer m_cbc::bcxe

◆ bcyb

integer m_cbc::bcyb

◆ bcye

integer m_cbc::bcye

◆ bczb

integer m_cbc::bczb

◆ bcze

integer m_cbc::bcze

◆ cbc_dir

integer m_cbc::cbc_dir

◆ cbc_loc

integer m_cbc::cbc_loc

◆ del_in

real(wp), dimension(:), allocatable m_cbc::del_in

◆ del_out

real(wp), dimension(:), allocatable m_cbc::del_out

◆ dj

integer m_cbc::dj

◆ ds

real(wp), dimension(:), allocatable m_cbc::ds

Cell-width distribution in the s-direction.

◆ f_rsx_vf

real(wp), dimension(:, :, :, :), allocatable m_cbc::f_rsx_vf

◆ f_rsy_vf

real(wp), dimension(:, :, :, :), allocatable m_cbc::f_rsy_vf

◆ f_rsz_vf

real(wp), dimension(:, :, :, :), allocatable m_cbc::f_rsz_vf

◆ f_src_rsx_vf

real(wp), dimension(:, :, :, :), allocatable m_cbc::f_src_rsx_vf

◆ f_src_rsy_vf

real(wp), dimension(:, :, :, :), allocatable m_cbc::f_src_rsy_vf

◆ f_src_rsz_vf

real(wp), dimension(:, :, :, :), allocatable m_cbc::f_src_rsz_vf

◆ fd_coef_x

real(wp), dimension(:, :), allocatable m_cbc::fd_coef_x

Finite diff. coefficients x-dir.

◆ fd_coef_y

real(wp), dimension(:, :), allocatable m_cbc::fd_coef_y

Finite diff. coefficients y-dir.

◆ fd_coef_z

real(wp), dimension(:, :), allocatable m_cbc::fd_coef_z

Finite diff. coefficients z-dir.

◆ flux_cbc_index

integer m_cbc::flux_cbc_index

◆ flux_rsx_vf_l

real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_rsx_vf_l

◆ flux_rsy_vf_l

real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_rsy_vf_l

◆ flux_rsz_vf_l

real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_rsz_vf_l

◆ flux_src_rsx_vf_l

real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_src_rsx_vf_l

◆ flux_src_rsy_vf_l

real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_src_rsy_vf_l

◆ flux_src_rsz_vf_l

real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_src_rsz_vf_l

◆ is1

type(int_bounds_info) m_cbc::is1

◆ is2

type(int_bounds_info) m_cbc::is2

◆ is3

type(int_bounds_info) m_cbc::is3

Indical bounds in the s1-, s2- and s3-directions.

◆ pi_coef_x

real(wp), dimension(:, :, :), allocatable m_cbc::pi_coef_x

Polynomial interpolant coefficients in x-dir.

◆ pi_coef_y

real(wp), dimension(:, :, :), allocatable m_cbc::pi_coef_y

Polynomial interpolant coefficients in y-dir.

◆ pi_coef_z

real(wp), dimension(:, :, :), allocatable m_cbc::pi_coef_z

Polynomial interpolant coefficients in z-dir.

◆ pres_in

real(wp), dimension(:), allocatable m_cbc::pres_in

◆ pres_out

real(wp), dimension(:), allocatable m_cbc::pres_out

◆ q_prim_rsx_vf

real(wp), dimension(:, :, :, :), allocatable m_cbc::q_prim_rsx_vf

◆ q_prim_rsy_vf

real(wp), dimension(:, :, :, :), allocatable m_cbc::q_prim_rsy_vf

◆ q_prim_rsz_vf

real(wp), dimension(:, :, :, :), allocatable m_cbc::q_prim_rsz_vf

◆ vel_in

real(wp), dimension(:, :), allocatable m_cbc::vel_in

◆ vel_out

real(wp), dimension(:, :), allocatable m_cbc::vel_out