|
MFC: Simulation
High-fidelity multiphase flow simulation
|
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_info) | is1 |
| type(int_bounds_info) | is2 |
| type(int_bounds_info) | is3 |
| 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 |
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.
| elemental subroutine m_cbc::s_any_cbc_boundaries | ( | logical, intent(inout) | toggle | ) |
| subroutine m_cbc::s_associate_cbc_coefficients_pointers | ( | integer, intent(in) | cbc_dir_in, |
| integer, intent(in) | cbc_loc_in ) |
| 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.
| q_prim_vf | Cell-average primitive variables |
| flux_vf | Cell-boundary-average fluxes |
| flux_src_vf | Cell-boundary-average flux sources |
| cbc_dir_norm | CBC coordinate direction |
| cbc_loc_norm | CBC coordinate location |
| ix | Index bound in the first coordinate direction |
| iy | Index bound in the second coordinate direction |
| iz | Index 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.
| subroutine m_cbc::s_compute_cbc_coefficients | ( | integer, intent(in) | cbc_dir_in, |
| integer, intent(in) | cbc_loc_in ) |
Compute CBC coefficients.
| cbc_dir_in | CBC coordinate direction |
| cbc_loc_in | CBC coordinate location |
| 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.
| flux_vf | Cell-boundary-average fluxes |
| flux_src_vf | Cell-boundary-average flux sources |
| impure subroutine, public m_cbc::s_finalize_cbc_module |
Module deallocation and/or disassociation procedures.
| 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.
| q_prim_vf | Cell-average primitive variables |
| flux_vf | Cell-boundary-average fluxes |
| flux_src_vf | Cell-boundary-average flux sources |
| ix | Index bound in the first coordinate direction |
| iy | Index bound in the second coordinate direction |
| iz | Index bound in the third coordinate direction |
| 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.
| real(wp), dimension(:, :), allocatable m_cbc::alpha_in |
| real(wp), dimension(:, :), allocatable m_cbc::alpha_rho_in |
| integer m_cbc::bcxb |
| integer m_cbc::bcxe |
| integer m_cbc::bcyb |
| integer m_cbc::bcye |
| integer m_cbc::bczb |
| integer m_cbc::bcze |
| integer m_cbc::cbc_dir |
| integer m_cbc::cbc_loc |
| real(wp), dimension(:), allocatable m_cbc::del_in |
| real(wp), dimension(:), allocatable m_cbc::del_out |
| integer m_cbc::dj |
| real(wp), dimension(:), allocatable m_cbc::ds |
Cell-width distribution in the s-direction.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_rsx_vf |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_rsy_vf |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_rsz_vf |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_src_rsx_vf |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_src_rsy_vf |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_src_rsz_vf |
| real(wp), dimension(:, :), allocatable m_cbc::fd_coef_x |
Finite diff. coefficients x-dir.
| real(wp), dimension(:, :), allocatable m_cbc::fd_coef_y |
Finite diff. coefficients y-dir.
| real(wp), dimension(:, :), allocatable m_cbc::fd_coef_z |
Finite diff. coefficients z-dir.
| integer m_cbc::flux_cbc_index |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_rsx_vf_l |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_rsy_vf_l |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_rsz_vf_l |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_src_rsx_vf_l |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_src_rsy_vf_l |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_src_rsz_vf_l |
| type(int_bounds_info) m_cbc::is1 |
| type(int_bounds_info) m_cbc::is2 |
| type(int_bounds_info) m_cbc::is3 |
Indical bounds in the s1-, s2- and s3-directions.
| real(wp), dimension(:, :, :), allocatable m_cbc::pi_coef_x |
Polynomial interpolant coefficients in x-dir.
| real(wp), dimension(:, :, :), allocatable m_cbc::pi_coef_y |
Polynomial interpolant coefficients in y-dir.
| real(wp), dimension(:, :, :), allocatable m_cbc::pi_coef_z |
Polynomial interpolant coefficients in z-dir.
| real(wp), dimension(:), allocatable m_cbc::pres_in |
| real(wp), dimension(:), allocatable m_cbc::pres_out |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::q_prim_rsx_vf |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::q_prim_rsy_vf |
| real(wp), dimension(:, :, :, :), allocatable m_cbc::q_prim_rsz_vf |
| real(wp), dimension(:, :), allocatable m_cbc::vel_in |
| real(wp), dimension(:, :), allocatable m_cbc::vel_out |