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

This module is used to handle all operations related to immersed boundary methods (IBMs) More...

Functions/Subroutines

impure subroutine, public s_initialize_ibm_module ()
 Allocates memory for the variables in the IBM module.
 
impure subroutine, public s_ibm_setup ()
 Initializes the values of various IBM variables, such as ghost points and image points.
 
subroutine s_populate_ib_buffers ()
 
subroutine, public s_ibm_correct_state (q_cons_vf, q_prim_vf, pb_in, mv_in)
 Subroutine that updates the conservative variables at the ghost points.
 
impure subroutine, private s_compute_image_points (ghost_points_in, levelset_in, levelset_norm_in)
 Function that computes the image points for each ghost point.
 
subroutine, private s_find_num_ghost_points (num_gps_out, num_inner_gps_out)
 Function that finds the number of ghost points, used for allocating memory.
 
subroutine, private s_find_ghost_points (ghost_points_in, inner_points_in)
 Function that finds the ghost points.
 
subroutine, private s_compute_interpolation_coeffs (ghost_points_in)
 Function that computes the interpolation coefficients of image points.
 
subroutine, private s_interpolate_image_point (q_prim_vf, gp, alpha_rho_ip, alpha_ip, pres_ip, vel_ip, c_ip, r_ip, v_ip, pb_ip, mv_ip, nmom_ip, pb_in, mv_in, presb_ip, massv_ip)
 Function that uses the interpolation coefficients and the current state at the cell centers in order to estimate the state at the image point.
 
impure subroutine s_update_mib (num_ibs, levelset, levelset_norm)
 Resets the current indexes of immersed boundaries and replaces them after updating the position of each moving immersed boundary.
 
impure subroutine, public s_finalize_ibm_module ()
 Subroutine to deallocate memory reserved for the IBM module.
 
real(wp) function, dimension(3) cross_product (a, b)
 

Variables

integer, dimension(:, :, :), allocatable patch_id_fp
 
type(integer_field), public ib_markers
 
type(levelset_field), public levelset
 
type(levelset_norm_field), public levelset_norm
 
type(ghost_point), dimension(:), allocatable ghost_points
 
type(ghost_point), dimension(:), allocatable inner_points
 
integer num_gps
 Number of ghost points.
 
integer num_inner_gps
 Number of ghost points.
 
logical moving_immersed_boundary_flag
 

Detailed Description

This module is used to handle all operations related to immersed boundary methods (IBMs)

Function/Subroutine Documentation

◆ cross_product()

real(wp) function, dimension(3) m_ibm::cross_product ( real(wp), dimension(3), intent(in) a,
real(wp), dimension(3), intent(in) b )
Here is the caller graph for this function:

◆ s_compute_image_points()

impure subroutine, private m_ibm::s_compute_image_points ( type(ghost_point), dimension(num_gps), intent(inout) ghost_points_in,
type(levelset_field), intent(in) levelset_in,
type(levelset_norm_field), intent(in) levelset_norm_in )
private

Function that computes the image points for each ghost point.

Parameters
ghost_pointsGhost Points
levelsetClosest distance from each grid cell to IB
levelset_normVector pointing in the direction of the closest distance
Here is the caller graph for this function:

◆ s_compute_interpolation_coeffs()

subroutine, private m_ibm::s_compute_interpolation_coeffs ( type(ghost_point), dimension(num_gps), intent(inout) ghost_points_in)
private

Function that computes the interpolation coefficients of image points.

Here is the caller graph for this function:

◆ s_finalize_ibm_module()

impure subroutine, public m_ibm::s_finalize_ibm_module

Subroutine to deallocate memory reserved for the IBM module.

◆ s_find_ghost_points()

subroutine, private m_ibm::s_find_ghost_points ( type(ghost_point), dimension(num_gps), intent(inout) ghost_points_in,
type(ghost_point), dimension(num_inner_gps), intent(inout) inner_points_in )
private

Function that finds the ghost points.

Here is the caller graph for this function:

◆ s_find_num_ghost_points()

subroutine, private m_ibm::s_find_num_ghost_points ( integer, intent(out) num_gps_out,
integer, intent(out) num_inner_gps_out )
private

Function that finds the number of ghost points, used for allocating memory.

Here is the caller graph for this function:

◆ s_ibm_correct_state()

subroutine, public m_ibm::s_ibm_correct_state ( type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf,
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 )

Subroutine that updates the conservative variables at the ghost points.

Parameters
q_cons_vfConservative Variables
q_prim_vfPrimitive variables
pbInternal bubble pressure
mvMass of vapor in bubble
[in,out]q_cons_vfPrimitive Variables
[in,out]q_prim_vfPrimitive Variables
Here is the call graph for this function:

◆ s_ibm_setup()

impure subroutine, public m_ibm::s_ibm_setup

Initializes the values of various IBM variables, such as ghost points and image points.

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

◆ s_initialize_ibm_module()

impure subroutine, public m_ibm::s_initialize_ibm_module

Allocates memory for the variables in the IBM module.

Here is the caller graph for this function:

◆ s_interpolate_image_point()

subroutine, private m_ibm::s_interpolate_image_point ( type(scalar_field), dimension(sys_size), intent(in) q_prim_vf,
type(ghost_point), intent(in) gp,
real(wp), dimension(num_fluids), intent(inout) alpha_rho_ip,
real(wp), dimension(num_fluids), intent(inout) alpha_ip,
real(wp), intent(inout) pres_ip,
real(wp), dimension(3), intent(inout) vel_ip,
real(wp), intent(inout) c_ip,
real(wp), dimension(:), intent(inout), optional r_ip,
real(wp), dimension(:), intent(inout), optional v_ip,
real(wp), dimension(:), intent(inout), optional pb_ip,
real(wp), dimension(:), intent(inout), optional mv_ip,
real(wp), dimension(:), intent(inout), optional nmom_ip,
real(stp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:), intent(in), optional pb_in,
real(stp), dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:), intent(in), optional mv_in,
real(wp), dimension(:), intent(inout), optional presb_ip,
real(wp), dimension(:), intent(inout), optional massv_ip )
private

Function that uses the interpolation coefficients and the current state at the cell centers in order to estimate the state at the image point.

Parameters
[in]q_prim_vfPrimitive Variables
Here is the caller graph for this function:

◆ s_populate_ib_buffers()

subroutine m_ibm::s_populate_ib_buffers
Here is the caller graph for this function:

◆ s_update_mib()

impure subroutine m_ibm::s_update_mib ( integer, intent(in) num_ibs,
type(levelset_field), intent(inout) levelset,
type(levelset_norm_field), intent(inout) levelset_norm )

Resets the current indexes of immersed boundaries and replaces them after updating the position of each moving immersed boundary.

Here is the call graph for this function:

Variable Documentation

◆ ghost_points

type(ghost_point), dimension(:), allocatable m_ibm::ghost_points

◆ ib_markers

type(integer_field), public m_ibm::ib_markers

◆ inner_points

type(ghost_point), dimension(:), allocatable m_ibm::inner_points

◆ levelset

type(levelset_field), public m_ibm::levelset

◆ levelset_norm

type(levelset_norm_field), public m_ibm::levelset_norm

◆ moving_immersed_boundary_flag

logical m_ibm::moving_immersed_boundary_flag

◆ num_gps

integer m_ibm::num_gps

Number of ghost points.

◆ num_inner_gps

integer m_ibm::num_inner_gps

Number of ghost points.

◆ patch_id_fp

integer, dimension(:, :, :), allocatable m_ibm::patch_id_fp