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

Functions/Subroutines

program __m_cbc_fpp_f90__
 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.
 
subroutine s_compute_speed_of_sound (pres, rho, gamma, pi_inf, h, adv, vel_sum, c)
 
subroutine 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 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, ix, iy, iz)
 Deallocation and/or the disassociation procedures that are necessary in order to finalize the CBC application.
 
subroutine s_any_cbc_boundaries (toggle)
 
subroutine s_finalize_cbc_module ()
 Module deallocation and/or disassociation procedures.
 

Function/Subroutine Documentation

◆ __m_cbc_fpp_f90__()

program __m_cbc_fpp_f90__

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.

Here is the call graph for this function:

◆ s_any_cbc_boundaries()

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

◆ s_associate_cbc_coefficients_pointers()

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

◆ s_cbc()

subroutine __m_cbc_fpp_f90__::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 )
private

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
Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_compute_cbc_coefficients()

subroutine __m_cbc_fpp_f90__::s_compute_cbc_coefficients ( integer, intent(in) cbc_dir_in,
integer, intent(in) cbc_loc_in )
private

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_compute_speed_of_sound()

subroutine __m_cbc_fpp_f90__::s_compute_speed_of_sound ( real(kind(0d0)), intent(in) pres,
real(kind(0d0)), intent(in) rho,
real(kind(0d0)), intent(in) gamma,
real(kind(0d0)), intent(in) pi_inf,
real(kind(0d0)), intent(in) h,
real(kind(0d0)), dimension(num_fluids), intent(in) adv,
real(kind(0d0)), intent(in) vel_sum,
real(kind(0d0)), intent(out) c )
Here is the caller graph for this function:

◆ s_finalize_cbc()

subroutine __m_cbc_fpp_f90__::s_finalize_cbc ( type(scalar_field), dimension(sys_size), intent(inout) flux_vf,
type(scalar_field), dimension(sys_size), intent(inout) flux_src_vf,
type(int_bounds_info), intent(in) ix,
type(int_bounds_info), intent(in) iy,
type(int_bounds_info), intent(in) iz )
private

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
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_finalize_cbc_module()

subroutine __m_cbc_fpp_f90__::s_finalize_cbc_module
private

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_fpp_f90__::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 )
private

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()

subroutine __m_cbc_fpp_f90__::s_initialize_cbc_module
private

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: