|
MFC
Exascale flow solver
|
Characteristic boundary conditions (CBC) for slip walls, non-reflecting subsonic inflow/outflow, and supersonic boundaries. 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) |
| Associates finite-difference and polynomial-interpolation CBC coefficients with targets based on coordinate direction and boundary location. The goal of the procedure is to associate the FD and PI coefficients, or CBC coefficients, with the appropriate targets, based on the coordinate direction and location of the CBC. | |
| 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) |
| Detects whether any domain boundary uses characteristic boundary conditions. | |
| 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 |
Characteristic boundary conditions (CBC) for slip walls, non-reflecting subsonic inflow/outflow, and supersonic boundaries.
| elemental subroutine m_cbc::s_any_cbc_boundaries | ( | logical, intent(inout) | toggle | ) |
Detects whether any domain boundary uses characteristic boundary conditions.
Definition at line 7009 of file m_cbc.fpp.f90.
| subroutine m_cbc::s_associate_cbc_coefficients_pointers | ( | integer, intent(in) | cbc_dir_in, |
| integer, intent(in) | cbc_loc_in ) |
Associates finite-difference and polynomial-interpolation CBC coefficients with targets based on coordinate direction and boundary location. The goal of the procedure is to associate the FD and PI coefficients, or CBC coefficients, with the appropriate targets, based on the coordinate direction and location of the CBC.
| cbc_dir_in | CBC coordinate direction |
| cbc_loc_in | CBC coordinate location |
Definition at line 2384 of file m_cbc.fpp.f90.
| 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.
Definition at line 2464 of file m_cbc.fpp.f90.
| 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 |
Definition at line 2149 of file m_cbc.fpp.f90.
| 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 |
Definition at line 6358 of file m_cbc.fpp.f90.
| impure subroutine, public m_cbc::s_finalize_cbc_module |
Module deallocation and/or disassociation procedures.
Definition at line 7056 of file m_cbc.fpp.f90.
| 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 |
Definition at line 5362 of file m_cbc.fpp.f90.
| 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.
Definition at line 505 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :), allocatable m_cbc::alpha_in |
Definition at line 465 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :), allocatable m_cbc::alpha_rho_in |
Definition at line 465 of file m_cbc.fpp.f90.
| integer m_cbc::bcxb |
Definition at line 433 of file m_cbc.fpp.f90.
| integer m_cbc::bcxe |
Definition at line 433 of file m_cbc.fpp.f90.
| integer m_cbc::bcyb |
Definition at line 433 of file m_cbc.fpp.f90.
| integer m_cbc::bcye |
Definition at line 433 of file m_cbc.fpp.f90.
| integer m_cbc::bczb |
Definition at line 433 of file m_cbc.fpp.f90.
| integer m_cbc::bcze |
Definition at line 433 of file m_cbc.fpp.f90.
| integer m_cbc::cbc_dir |
Definition at line 434 of file m_cbc.fpp.f90.
| integer m_cbc::cbc_loc |
Definition at line 434 of file m_cbc.fpp.f90.
| real(wp), dimension(:), allocatable m_cbc::del_in |
Definition at line 463 of file m_cbc.fpp.f90.
| real(wp), dimension(:), allocatable m_cbc::del_out |
Definition at line 463 of file m_cbc.fpp.f90.
| integer m_cbc::dj |
Definition at line 432 of file m_cbc.fpp.f90.
| real(wp), dimension(:), allocatable m_cbc::ds |
Cell-width distribution in the s-direction.
Definition at line 385 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_rsx_vf |
Definition at line 349 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_rsy_vf |
Definition at line 350 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_rsz_vf |
Definition at line 351 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_src_rsx_vf |
Definition at line 349 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_src_rsy_vf |
Definition at line 350 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::f_src_rsz_vf |
Definition at line 351 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :), allocatable m_cbc::fd_coef_x |
Finite diff. coefficients x-dir.
Definition at line 389 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :), allocatable m_cbc::fd_coef_y |
Finite diff. coefficients y-dir.
Definition at line 390 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :), allocatable m_cbc::fd_coef_z |
Finite diff. coefficients z-dir.
Definition at line 391 of file m_cbc.fpp.f90.
| integer m_cbc::flux_cbc_index |
Definition at line 435 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_rsx_vf_l |
Definition at line 370 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_rsy_vf_l |
Definition at line 371 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_rsz_vf_l |
Definition at line 372 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_src_rsx_vf_l |
Definition at line 370 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_src_rsy_vf_l |
Definition at line 371 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::flux_src_rsz_vf_l |
Definition at line 372 of file m_cbc.fpp.f90.
| type(int_bounds_info) m_cbc::is1 |
Definition at line 419 of file m_cbc.fpp.f90.
| type(int_bounds_info) m_cbc::is2 |
Definition at line 419 of file m_cbc.fpp.f90.
| type(int_bounds_info) m_cbc::is3 |
Indical bounds in the s1-, s2- and s3-directions.
Definition at line 419 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :), allocatable m_cbc::pi_coef_x |
Polynomial interpolant coefficients in x-dir.
Definition at line 399 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :), allocatable m_cbc::pi_coef_y |
Polynomial interpolant coefficients in y-dir.
Definition at line 400 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :), allocatable m_cbc::pi_coef_z |
Polynomial interpolant coefficients in z-dir.
Definition at line 401 of file m_cbc.fpp.f90.
| real(wp), dimension(:), allocatable m_cbc::pres_in |
Definition at line 463 of file m_cbc.fpp.f90.
| real(wp), dimension(:), allocatable m_cbc::pres_out |
Definition at line 463 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::q_prim_rsx_vf |
Definition at line 331 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::q_prim_rsy_vf |
Definition at line 332 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :, :, :), allocatable m_cbc::q_prim_rsz_vf |
Definition at line 333 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :), allocatable m_cbc::vel_in |
Definition at line 464 of file m_cbc.fpp.f90.
| real(wp), dimension(:, :), allocatable m_cbc::vel_out |
Definition at line 464 of file m_cbc.fpp.f90.