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)
 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)
 Resets the current indexes of immersed boundaries and replaces them after updating the position of each moving immersed boundary.
subroutine s_compute_ib_forces (q_prim_vf, fluid_pp)
impure subroutine, public s_finalize_ibm_module ()
 Subroutine to deallocate memory reserved for the IBM module.
subroutine s_compute_centroid_offset (ib_marker)
 Computes the center of mass for IB patch types where we are unable to determine their center of mass analytically. These patches include things like NACA airfoils and STL models.
subroutine s_compute_moment_of_inertia (ib_marker, axis)
subroutine s_cross_product (a, b, c)

Variables

type(integer_field), public ib_markers
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

◆ s_compute_centroid_offset()

subroutine m_ibm::s_compute_centroid_offset ( integer, intent(in) ib_marker)

Computes the center of mass for IB patch types where we are unable to determine their center of mass analytically. These patches include things like NACA airfoils and STL models.

Here is the caller graph for this function:

◆ s_compute_ib_forces()

subroutine m_ibm::s_compute_ib_forces ( type(scalar_field), dimension(1:sys_size), intent(in) q_prim_vf,
type(physical_parameters), dimension(1:num_fluids), intent(in) fluid_pp )
Here is the call 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)
private

Function that computes the image points for each ghost point.

Parameters
ghost_pointsGhost Points
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_compute_moment_of_inertia()

subroutine m_ibm::s_compute_moment_of_inertia ( integer, intent(in) ib_marker,
real(wp), dimension(3), intent(in) axis )
Parameters
[in]axisthe axis about which we compute the moment. Only required in 3D.
Here is the caller graph for this function:

◆ s_cross_product()

subroutine m_ibm::s_cross_product ( real(wp), dimension(3), intent(in) a,
real(wp), dimension(3), intent(in) b,
real(wp), dimension(3), intent(out) c )
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)

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

◆ 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.