MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_ibm.fpp.f90 File Reference

Contains module m_ibm. More...

Go to the source code of this file.

Modules

module  m_ibm
 Ghost-node immersed boundary method: locates ghost/image points, computes interpolation coefficients, and corrects the flow state.

Functions/Subroutines

impure subroutine, public m_ibm::s_initialize_ibm_module ()
 Allocates memory for the variables in the IBM module.
impure subroutine, public m_ibm::s_ibm_setup ()
 Initializes the values of various IBM variables, such as ghost points and image points.
subroutine, public m_ibm::s_ibm_correct_state (q_cons_vf, q_prim_vf, pb_in, mv_in)
 Update the conservative variables at the ghost points.
impure subroutine, private m_ibm::s_compute_image_points (ghost_points_in)
 Compute the image points for each ghost point.
subroutine, private m_ibm::s_find_num_ghost_points (num_gps_out)
 Count the number of ghost points for memory allocation.
subroutine, private m_ibm::s_find_ghost_points (ghost_points_in)
 Locate all ghost points in the domain.
subroutine, private m_ibm::s_compute_interpolation_coeffs (ghost_points_in)
 Compute the interpolation coefficients for image points.
subroutine, private m_ibm::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)
 Interpolate primitive variables to a ghost point's image point using bilinear or trilinear interpolation.
impure subroutine m_ibm::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 m_ibm::s_compute_ib_forces (q_prim_vf, fluid_pp)
 Compute pressure and viscous forces and torques on immersed bodies via volume integration.
subroutine m_ibm::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 m_ibm::s_compute_moment_of_inertia (ib_idx, axis)
 Computes the moment of inertia for an immersed boundary.
subroutine m_ibm::s_wrap_periodic_ibs ()
 Wrap immersed boundary positions across periodic domain boundaries.
subroutine m_ibm::s_communicate_ib_forces (forces, torques)
 Swaps ownership of IBs and passes ownership of IBs to neighbor processors Reduces forces and torques across the local neighborhood without a global allreduce. Accumulation phase: 2 passes per dimension receiving from the low-index (-X) neighbor. Pass 1: add received values; save what was received as recv_snap. Pass 2: send current (post-pass-1) values; add received; subtract recv_snap to remove double-counting of the direct contribution already added in pass 1. Back-propagation phase: 2 passes per dimension receiving from the high-index (+X) neighbor, each overwriting local forces with the neighbor's accumulated total.
subroutine m_ibm::s_handoff_ib_ownership ()
subroutine m_ibm::s_get_neighborhood_idx (gbl_idx, neighborhood_idx)
subroutine m_ibm::s_update_ib_lookup ()
impure subroutine, public m_ibm::s_finalize_ibm_module ()
 Finalize the IBM module.

Variables

type(integer_field), public m_ibm::ib_markers
type(ghost_point), dimension(:), allocatable m_ibm::ghost_points
integer, dimension(:), allocatable, public m_ibm::ib_gbl_idx_lookup
integer m_ibm::num_gps
 Number of ghost points.
logical m_ibm::moving_immersed_boundary_flag
integer, dimension(:), allocatable m_ibm::send_ids
integer, dimension(:), allocatable m_ibm::recv_ids
real(wp), dimension(:,:), allocatable m_ibm::send_ft
real(wp), dimension(:,:), allocatable m_ibm::recv_ft
real(wp), dimension(:,:), allocatable m_ibm::recv_forces_snap
real(wp), dimension(:,:), allocatable m_ibm::recv_torques_snap

Detailed Description

Contains module m_ibm.

Definition in file m_ibm.fpp.f90.