|
MFC
Exascale flow solver
|
Contains module m_bubbles_EL_kernels. More...
Go to the source code of this file.
Modules | |
| module | m_bubbles_el_kernels |
| Kernel functions (Gaussian, delta) that smear Lagrangian bubble effects onto the Eulerian grid. | |
Functions/Subroutines | |
| subroutine | m_bubbles_el_kernels::s_smoothfunction (nbubs, lbk_rad, lbk_vel, lbk_s, lbk_pos, updatedvar, kcomp) |
| Smear the Lagrangian bubble effects onto the Eulerian grid using the selected kernel. | |
| subroutine | m_bubbles_el_kernels::s_build_cell_list (nbubs, lbk_s) |
| Builds a sorted cell list mapping each interior cell (0:m,0:n,0:p) to its resident bubbles. Uses a counting-sort on the host (O(nBubs + N_cells)). Must be called before s_gaussian each RK stage. | |
| subroutine | m_bubbles_el_kernels::s_deltafunc (nbubs, lbk_rad, lbk_vel, lbk_s, updatedvar, kcomp) |
| Cell-centric delta-function smearing using the cell list (no GPU atomics). Each bubble only affects the cell it resides in. The outer GPU loop iterates over interior cells and sums contributions from resident bubbles. | |
| subroutine | m_bubbles_el_kernels::s_gaussian (nbubs, lbk_rad, lbk_vel, lbk_s, lbk_pos, updatedvar, kcomp) |
| Cell-centric gaussian smearing using the cell list (no GPU atomics). Each grid cell accumulates contributions from nearby bubbles looked up via cell_list_start/count/idx. | |
| subroutine | m_bubbles_el_kernels::s_applygaussian (center, cellaux, nodecoord, stddsv, strength_idx, func) |
| Evaluate the Gaussian kernel at a grid node for a given bubble center. | |
| subroutine | m_bubbles_el_kernels::s_check_celloutside (cellaux, celloutside) |
| Check if the current cell is outside the computational domain including ghost cells. | |
| subroutine | m_bubbles_el_kernels::s_shift_cell_symmetric_bc (cellaux, cell) |
| Relocate cells that intersect a symmetric boundary. | |
| subroutine | m_bubbles_el_kernels::s_compute_stddsv (cell, volpart, stddsv) |
| Calculates the standard deviation of the bubble being smeared in the Eulerian framework. | |
| subroutine | m_bubbles_el_kernels::s_get_char_vol (cellx, celly, cellz, charvol) |
| Compute the characteristic cell volume. | |
| subroutine | m_bubbles_el_kernels::s_get_cell (s_cell, get_cell) |
| Convert bubble computational coordinates from real to integer cell indices. | |
| subroutine | m_bubbles_el_kernels::s_compute_pressure_gradients (q_prim_vf) |
| Precompute cell-centered pressure gradients (dp/dx, dp/dy, dp/dz). | |
| real(wp) function | m_bubbles_el_kernels::f_interpolate_velocity (pos, cell, i, q_prim_vf) |
| real(wp) function | m_bubbles_el_kernels::f_get_bubble_force (pos, rad, rdot, vel, mg, mv, re, rho, cell, i, q_prim_vf) |
Variables | |
| real(wp), dimension(:,:,:), allocatable | m_bubbles_el_kernels::grad_p_x |
| real(wp), dimension(:,:,:), allocatable | m_bubbles_el_kernels::grad_p_y |
| real(wp), dimension(:,:,:), allocatable | m_bubbles_el_kernels::grad_p_z |
| real(wp), dimension(:,:), allocatable | m_bubbles_el_kernels::fd_coeff_x_pgrad |
| real(wp), dimension(:,:), allocatable | m_bubbles_el_kernels::fd_coeff_y_pgrad |
| real(wp), dimension(:,:), allocatable | m_bubbles_el_kernels::fd_coeff_z_pgrad |
| integer, dimension(:,:,:), allocatable | m_bubbles_el_kernels::cell_list_start |
| integer, dimension(:,:,:), allocatable | m_bubbles_el_kernels::cell_list_count |
| integer, dimension(:), allocatable | m_bubbles_el_kernels::cell_list_idx |
Contains module m_bubbles_EL_kernels.
Definition in file m_bubbles_EL_kernels.fpp.f90.