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

Noncharacteristic and processor boundary condition application for ghost cells and buffer regions. More...

Functions/Subroutines

impure subroutine, public s_initialize_boundary_common_module ()
 Allocate and set up boundary condition buffer arrays for all coordinate directions.
impure subroutine, public s_populate_variables_buffers (bc_type, q_prim_vf, pb_in, mv_in)
 Populate the buffers of the primitive variables based on the selected boundary conditions.
subroutine s_ghost_cell_extrapolation (q_prim_vf, bc_dir, bc_loc, k, l)
 Fill ghost cells by copying the nearest boundary cell value along the specified direction.
subroutine s_symmetry (q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in)
 Apply reflective (symmetry) boundary conditions by mirroring primitive variables and flipping the normal velocity component.
subroutine s_periodic (q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in)
 Apply periodic boundary conditions by copying values from the opposite domain boundary.
subroutine s_axis (q_prim_vf, pb_in, mv_in, k, l)
 Apply axis boundary conditions for cylindrical coordinates by reflecting values across the axis with azimuthal phase shift.
subroutine s_slip_wall (q_prim_vf, bc_dir, bc_loc, k, l)
 Apply slip wall boundary conditions by extrapolating scalars and reflecting the wall-normal velocity component.
subroutine s_no_slip_wall (q_prim_vf, bc_dir, bc_loc, k, l)
 Apply no-slip wall boundary conditions by reflecting and negating all velocity components at the wall.
subroutine s_dirichlet (q_prim_vf, bc_dir, bc_loc, k, l)
 Apply Dirichlet boundary conditions by prescribing ghost cell values from stored boundary buffers.
subroutine s_qbmm_extrapolation (bc_dir, bc_loc, k, l, pb_in, mv_in)
 Extrapolate QBMM bubble pressure and mass-vapor variables into ghost cells by copying boundary values.
impure subroutine, public s_populate_capillary_buffers (c_divs, bc_type)
 Populate ghost cell buffers for the color function and its divergence used in capillary surface tension.
subroutine s_color_function_periodic (c_divs, bc_dir, bc_loc, k, l)
 Apply periodic boundary conditions to the color function and its divergence fields.
subroutine s_color_function_reflective (c_divs, bc_dir, bc_loc, k, l)
 Apply reflective boundary conditions to the color function and its divergence fields.
subroutine s_color_function_ghost_cell_extrapolation (c_divs, bc_dir, bc_loc, k, l)
 Extrapolate the color function and its divergence into ghost cells by copying boundary values.
impure subroutine, public s_populate_f_igr_buffers (bc_type, jac_sf)
 Populate ghost cell buffers for the Jacobian scalar field used in the IGR elliptic solver.
impure subroutine, public s_create_mpi_types (bc_type)
 Create MPI derived datatypes for boundary condition type arrays and buffer arrays used in parallel I/O.
subroutine, public s_write_serial_boundary_condition_files (q_prim_vf, bc_type, step_dirpath, old_grid_in)
 Write boundary condition type and buffer data to serial (unformatted) restart files.
subroutine, public s_write_parallel_boundary_condition_files (q_prim_vf, bc_type)
 Write boundary condition type and buffer data to per-rank parallel files using MPI I/O.
subroutine, public s_read_serial_boundary_condition_files (step_dirpath, bc_type)
 Read boundary condition type and buffer data from serial (unformatted) restart files.
subroutine, public s_read_parallel_boundary_condition_files (bc_type)
 Read boundary condition type and buffer data from per-rank parallel files using MPI I/O.
subroutine s_pack_boundary_condition_buffers (q_prim_vf)
 Pack primitive variable boundary slices into bc_buffers arrays for serialization.
subroutine, public s_assign_default_bc_type (bc_type)
 Initialize the per-cell boundary condition type arrays with the global default BC values.
subroutine, public s_populate_grid_variables_buffers
 Populate the buffers of the grid variables, which are constituted of the cell-boundary locations and cell-width distributions, based on the boundary conditions.
subroutine, public s_finalize_boundary_common_module ()
 Deallocate boundary condition buffer arrays allocated during module initialization.

Variables

type(scalar_field), dimension(:,:), allocatable, public bc_buffers
integer, dimension(1:3, 1:2), public mpi_bc_type_type
integer, dimension(1:3, 1:2), public mpi_bc_buffer_type

Detailed Description

Noncharacteristic and processor boundary condition application for ghost cells and buffer regions.

Function/Subroutine Documentation

◆ s_assign_default_bc_type()

subroutine, public m_boundary_common::s_assign_default_bc_type ( type(integer_field), dimension(1:num_dims,1:2), intent(in) bc_type)

Initialize the per-cell boundary condition type arrays with the global default BC values.

Definition at line 3308 of file m_boundary_common.fpp.f90.

◆ s_axis()

subroutine m_boundary_common::s_axis ( type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf,
real(stp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:), intent(inout) pb_in,
real(stp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:), intent(inout) mv_in,
integer, intent(in) k,
integer, intent(in) l )

Apply axis boundary conditions for cylindrical coordinates by reflecting values across the axis with azimuthal phase shift.

Definition at line 1524 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_color_function_ghost_cell_extrapolation()

subroutine m_boundary_common::s_color_function_ghost_cell_extrapolation ( type(scalar_field), dimension(num_dims + 1), intent(inout) c_divs,
integer, intent(in) bc_dir,
integer, intent(in) bc_loc,
integer, intent(in) k,
integer, intent(in) l )

Extrapolate the color function and its divergence into ghost cells by copying boundary values.

Definition at line 2540 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_color_function_periodic()

subroutine m_boundary_common::s_color_function_periodic ( type(scalar_field), dimension(num_dims + 1), intent(inout) c_divs,
integer, intent(in) bc_dir,
integer, intent(in) bc_loc,
integer, intent(in) k,
integer, intent(in) l )

Apply periodic boundary conditions to the color function and its divergence fields.

Definition at line 2338 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_color_function_reflective()

subroutine m_boundary_common::s_color_function_reflective ( type(scalar_field), dimension(num_dims + 1), intent(inout) c_divs,
integer, intent(in) bc_dir,
integer, intent(in) bc_loc,
integer, intent(in) k,
integer, intent(in) l )

Apply reflective boundary conditions to the color function and its divergence fields.

Definition at line 2427 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_create_mpi_types()

impure subroutine, public m_boundary_common::s_create_mpi_types ( type(integer_field), dimension(1:num_dims,1:2), intent(in) bc_type)

Create MPI derived datatypes for boundary condition type arrays and buffer arrays used in parallel I/O.

Definition at line 2976 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_dirichlet()

subroutine m_boundary_common::s_dirichlet ( type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf,
integer, intent(in) bc_dir,
integer, intent(in) bc_loc,
integer, intent(in) k,
integer, intent(in) l )

Apply Dirichlet boundary conditions by prescribing ghost cell values from stored boundary buffers.

Definition at line 1839 of file m_boundary_common.fpp.f90.

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

◆ s_finalize_boundary_common_module()

subroutine, public m_boundary_common::s_finalize_boundary_common_module

Deallocate boundary condition buffer arrays allocated during module initialization.

Definition at line 3549 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_ghost_cell_extrapolation()

subroutine m_boundary_common::s_ghost_cell_extrapolation ( type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf,
integer, intent(in) bc_dir,
integer, intent(in) bc_loc,
integer, intent(in) k,
integer, intent(in) l )

Fill ghost cells by copying the nearest boundary cell value along the specified direction.

Definition at line 1062 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_initialize_boundary_common_module()

impure subroutine, public m_boundary_common::s_initialize_boundary_common_module

Allocate and set up boundary condition buffer arrays for all coordinate directions.

Definition at line 372 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_no_slip_wall()

subroutine m_boundary_common::s_no_slip_wall ( type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf,
integer, intent(in) bc_dir,
integer, intent(in) bc_loc,
integer, intent(in) k,
integer, intent(in) l )

Apply no-slip wall boundary conditions by reflecting and negating all velocity components at the wall.

Definition at line 1701 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_pack_boundary_condition_buffers()

subroutine m_boundary_common::s_pack_boundary_condition_buffers ( type(scalar_field), dimension(sys_size), intent(in) q_prim_vf)

Pack primitive variable boundary slices into bc_buffers arrays for serialization.

Definition at line 3265 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_periodic()

subroutine m_boundary_common::s_periodic ( type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf,
integer, intent(in) bc_dir,
integer, intent(in) bc_loc,
integer, intent(in) k,
integer, intent(in) l,
real(stp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:), intent(inout), optional pb_in,
real(stp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:), intent(inout), optional mv_in )

Apply periodic boundary conditions by copying values from the opposite domain boundary.

Definition at line 1388 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_populate_capillary_buffers()

impure subroutine, public m_boundary_common::s_populate_capillary_buffers ( type(scalar_field), dimension(num_dims + 1), intent(inout) c_divs,
type(integer_field), dimension(1:num_dims,1:2), intent(in) bc_type )

Populate ghost cell buffers for the color function and its divergence used in capillary surface tension.

x-direction

y-direction

z-direction

Definition at line 2023 of file m_boundary_common.fpp.f90.

Here is the call graph for this function:

◆ s_populate_f_igr_buffers()

impure subroutine, public m_boundary_common::s_populate_f_igr_buffers ( type(integer_field), dimension(1:num_dims,1:2), intent(in) bc_type,
type(scalar_field), dimension(1:), intent(inout) jac_sf )

Populate ghost cell buffers for the Jacobian scalar field used in the IGR elliptic solver.

Definition at line 2629 of file m_boundary_common.fpp.f90.

◆ s_populate_grid_variables_buffers()

subroutine, public m_boundary_common::s_populate_grid_variables_buffers

Populate the buffers of the grid variables, which are constituted of the cell-boundary locations and cell-width distributions, based on the boundary conditions.

Definition at line 3365 of file m_boundary_common.fpp.f90.

◆ s_populate_variables_buffers()

impure subroutine, public m_boundary_common::s_populate_variables_buffers ( type(integer_field), dimension(1:num_dims,1:2), intent(in) bc_type,
type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf,
real(stp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:), intent(inout), optional pb_in,
real(stp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:), intent(inout), optional mv_in )

Populate the buffers of the primitive variables based on the selected boundary conditions.

Definition at line 681 of file m_boundary_common.fpp.f90.

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

◆ s_qbmm_extrapolation()

subroutine m_boundary_common::s_qbmm_extrapolation ( integer, intent(in) bc_dir,
integer, intent(in) bc_loc,
integer, intent(in) k,
integer, intent(in) l,
real(stp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:), intent(inout), optional pb_in,
real(stp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:), intent(inout), optional mv_in )

Extrapolate QBMM bubble pressure and mass-vapor variables into ghost cells by copying boundary values.

Definition at line 1936 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_read_parallel_boundary_condition_files()

subroutine, public m_boundary_common::s_read_parallel_boundary_condition_files ( type(integer_field), dimension(1:num_dims,1:2), intent(inout) bc_type)

Read boundary condition type and buffer data from per-rank parallel files using MPI I/O.

Definition at line 3180 of file m_boundary_common.fpp.f90.

Here is the call graph for this function:

◆ s_read_serial_boundary_condition_files()

subroutine, public m_boundary_common::s_read_serial_boundary_condition_files ( character(len=*), intent(in) step_dirpath,
type(integer_field), dimension(1:num_dims,1:2), intent(inout) bc_type )

Read boundary condition type and buffer data from serial (unformatted) restart files.

Definition at line 3115 of file m_boundary_common.fpp.f90.

◆ s_slip_wall()

subroutine m_boundary_common::s_slip_wall ( type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf,
integer, intent(in) bc_dir,
integer, intent(in) bc_loc,
integer, intent(in) k,
integer, intent(in) l )

Apply slip wall boundary conditions by extrapolating scalars and reflecting the wall-normal velocity component.

Definition at line 1588 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_symmetry()

subroutine m_boundary_common::s_symmetry ( type(scalar_field), dimension(sys_size), intent(inout) q_prim_vf,
integer, intent(in) bc_dir,
integer, intent(in) bc_loc,
integer, intent(in) k,
integer, intent(in) l,
real(stp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:), intent(inout), optional pb_in,
real(stp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:), intent(inout), optional mv_in )

Apply reflective (symmetry) boundary conditions by mirroring primitive variables and flipping the normal velocity component.

Definition at line 1151 of file m_boundary_common.fpp.f90.

Here is the caller graph for this function:

◆ s_write_parallel_boundary_condition_files()

subroutine, public m_boundary_common::s_write_parallel_boundary_condition_files ( type(scalar_field), dimension(sys_size), intent(in) q_prim_vf,
type(integer_field), dimension(1:num_dims,1:2), intent(in) bc_type )

Write boundary condition type and buffer data to per-rank parallel files using MPI I/O.

Definition at line 3050 of file m_boundary_common.fpp.f90.

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

◆ s_write_serial_boundary_condition_files()

subroutine, public m_boundary_common::s_write_serial_boundary_condition_files ( type(scalar_field), dimension(sys_size), intent(in) q_prim_vf,
type(integer_field), dimension(1:num_dims,1:2), intent(in) bc_type,
character(len=*), intent(in) step_dirpath,
logical, intent(in) old_grid_in )

Write boundary condition type and buffer data to serial (unformatted) restart files.

Definition at line 3011 of file m_boundary_common.fpp.f90.

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

Variable Documentation

◆ bc_buffers

type(scalar_field), dimension(:,:), allocatable, public m_boundary_common::bc_buffers

Definition at line 339 of file m_boundary_common.fpp.f90.

◆ mpi_bc_buffer_type

integer, dimension(1:3,1:2), public m_boundary_common::mpi_bc_buffer_type

Definition at line 354 of file m_boundary_common.fpp.f90.

◆ mpi_bc_type_type

integer, dimension(1:3,1:2), public m_boundary_common::mpi_bc_type_type

Definition at line 353 of file m_boundary_common.fpp.f90.