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

Contains module m_ib_patches. More...

Go to the source code of this file.

Modules

module  m_ib_patches
 Allocate memory and read initial condition data for IC extrusion.

Functions/Subroutines

impure subroutine, public m_ib_patches::s_apply_ib_patches (ib_markers)
 Apply all immersed boundary patch geometries to mark interior cells in the IB marker array.
subroutine m_ib_patches::s_apply_ib_patches_grid_cell_parallelism (ib_markers)
subroutine m_ib_patches::s_apply_ib_patches_ib_parallelism (ib_markers)
subroutine, public m_ib_patches::s_initialize_ib_airfoils ()
 Initialize the NACA surface grids for all airfoil IB patches. Must be called after the grid is established (so dx is valid) and before s_apply_ib_patches or s_apply_levelset.
subroutine, public m_ib_patches::s_update_ib_rotation_matrix (patch_id)
 Compute a rotation matrix for converting to the rotating frame of the boundary.
subroutine, public m_ib_patches::s_get_ib_bound (patch, bound)
subroutine m_ib_patches::s_get_bounding_indices (patch, center, il, ir, jl, jr, kl, kr)
subroutine m_ib_patches::get_indices_from_bounds (left_bound, right_bound, cell_centers, left_index, right_index)
subroutine, public m_ib_patches::s_encode_patch_periodicity (patch_id, x_periodicity, y_periodicity, z_periodicity, encoded_patch_id)
 Encode the patch ID with a unique offset containing periodicity information.
subroutine, public m_ib_patches::s_decode_patch_periodicity (encoded_patch_id, patch_id, x_periodicity, y_periodicity, z_periodicity)
 Decode the encoded ID to recover the original patch ID and periodicity.
subroutine, public m_ib_patches::s_get_neighborhood_idx (gbl_idx, neighborhood_idx, num_entries)
 binary search to retrieve the local IB patch index using the global index
subroutine, public m_ib_patches::s_update_ib_lookup ()
 Completely rebuilds the ib lookup map, used at startup.
subroutine, public m_ib_patches::s_compact_ib_lookup (old_to_new, num_ibs_old)
 Drop the entries whose patches left the neighborhood and renumber the survivors onto the patch_ib slots they were compacted into. Keys are never reordered, so the map stays sorted for free and only the values move: O(num_ibs_old) against re-sorting the whole map.
subroutine, public m_ib_patches::s_merge_ib_lookup (num_ibs_pre)
 Fold patch_ib(num_ibs_pre+1:num_ibs) into the map: sort just the arrivals, then merge the two sorted runs downward from the top. O(num_ibs) plus the sort of the few arrivals. They are copied out first because the runs share this array and merging in place would overwrite entries still to be read.
subroutine, public m_ib_patches::s_get_periodicities (xp_lower, xp_upper, yp_lower, yp_upper, zp_lower, zp_upper)
 Determine the periodic wrapping bounds in each direction.
pure elemental real(wp) function m_ib_patches::f_r (myth, offset, a)
 Archimedes spiral function.

Variables

integer, dimension(num_ib_patches_max_namelist) m_ib_patches::ib_lookup_keys
 lookup arrays for converting global IB indices to local indices
integer, dimension(num_ib_patches_max_namelist) m_ib_patches::ib_lookup_vals
integer, dimension(num_ib_patches_max_namelist) m_ib_patches::ib_new_keys
 Holds each step's arrivals while they are sorted and merged in. Host only.
integer, dimension(num_ib_patches_max_namelist) m_ib_patches::ib_new_vals

Detailed Description

Contains module m_ib_patches.

Definition in file m_ib_patches.fpp.f90.