MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_bubbles_el_kernels Module Reference

Kernel functions (Gaussian, delta) that smear Lagrangian bubble effects onto the Eulerian grid. More...

Functions/Subroutines

subroutine s_smoothfunction (nbubs, lbk_rad, lbk_vel, lbk_s, lbk_pos, updatedvar)
 The purpose of this subroutine is to smear the strength of the lagrangian bubbles into the Eulerian framework using different approaches.
subroutine s_deltafunc (nbubs, lbk_rad, lbk_vel, lbk_s, updatedvar)
 The purpose of this procedure contains the algorithm to use the delta kernel function to map the effect of the bubbles. The effect of the bubbles only affects the cell where the bubble is located.
subroutine s_gaussian (nbubs, lbk_rad, lbk_vel, lbk_s, lbk_pos, updatedvar)
 The purpose of this procedure contains the algorithm to use the gaussian kernel function to map the effect of the bubbles. The effect of the bubbles affects the 3X3x3 cells that surround the bubble.
subroutine s_applygaussian (center, cellaux, nodecoord, stddsv, strength_idx, func)
 The purpose of this subroutine is to apply the gaussian kernel function for each bubble (Maeda and Colonius, 2018)).
subroutine s_check_celloutside (cellaux, celloutside)
 The purpose of this subroutine is to check if the current cell is outside the computational domain or not (including ghost cells).
subroutine s_shift_cell_symmetric_bc (cellaux, cell)
 This subroutine relocates the current cell, if it intersects a symmetric boundary.
subroutine s_compute_stddsv (cell, volpart, stddsv)
 Calculates the standard deviation of the bubble being smeared in the Eulerian framework.
subroutine s_get_char_vol (cellx, celly, cellz, charvol)
 The purpose of this procedure is to calculate the characteristic cell volume.
subroutine s_get_cell (s_cell, get_cell)
 This subroutine transforms the computational coordinates of the bubble from real type into integer.

Detailed Description

Kernel functions (Gaussian, delta) that smear Lagrangian bubble effects onto the Eulerian grid.

Function/Subroutine Documentation

◆ s_applygaussian()

subroutine m_bubbles_el_kernels::s_applygaussian ( real(wp), dimension(3), intent(in) center,
integer, dimension(3), intent(in) cellaux,
real(wp), dimension(3), intent(in) nodecoord,
real(wp), intent(in) stddsv,
real(wp), intent(in) strength_idx,
real(wp), intent(out) func )

The purpose of this subroutine is to apply the gaussian kernel function for each bubble (Maeda and Colonius, 2018)).

Definition at line 635 of file m_bubbles_EL_kernels.fpp.f90.

Here is the caller graph for this function:

◆ s_check_celloutside()

subroutine m_bubbles_el_kernels::s_check_celloutside ( integer, dimension(3), intent(inout) cellaux,
logical, intent(out) celloutside )

The purpose of this subroutine is to check if the current cell is outside the computational domain or not (including ghost cells).

Parameters
cellauxTested cell to smear the bubble effect in.
celloutsideIf true, then cellaux is outside the computational domain.

Definition at line 737 of file m_bubbles_EL_kernels.fpp.f90.

Here is the caller graph for this function:

◆ s_compute_stddsv()

subroutine m_bubbles_el_kernels::s_compute_stddsv ( integer, dimension(3), intent(in) cell,
real(wp), intent(in) volpart,
real(wp), intent(out) stddsv )

Calculates the standard deviation of the bubble being smeared in the Eulerian framework.

Parameters
cellCell where the bubble is located
volpartVolume of the bubble
stddsvStandard deviaton

Definition at line 878 of file m_bubbles_EL_kernels.fpp.f90.

Here is the caller graph for this function:

◆ s_deltafunc()

subroutine m_bubbles_el_kernels::s_deltafunc ( integer, intent(in) nbubs,
real(wp), dimension(1:lag_params%nbubs_glb, 1:2), intent(in) lbk_rad,
real(wp), dimension(1:lag_params%nbubs_glb, 1:2), intent(in) lbk_vel,
real(wp), dimension(1:lag_params%nbubs_glb, 1:3, 1:2), intent(in) lbk_s,
type(scalar_field), dimension(:), intent(inout) updatedvar )

The purpose of this procedure contains the algorithm to use the delta kernel function to map the effect of the bubbles. The effect of the bubbles only affects the cell where the bubble is located.

Definition at line 328 of file m_bubbles_EL_kernels.fpp.f90.

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

◆ s_gaussian()

subroutine m_bubbles_el_kernels::s_gaussian ( integer, intent(in) nbubs,
real(wp), dimension(1:lag_params%nbubs_glb, 1:2), intent(in) lbk_rad,
real(wp), dimension(1:lag_params%nbubs_glb, 1:2), intent(in) lbk_vel,
real(wp), dimension(1:lag_params%nbubs_glb, 1:3, 1:2), intent(in) lbk_s,
real(wp), dimension(1:lag_params%nbubs_glb, 1:3, 1:2), intent(in) lbk_pos,
type(scalar_field), dimension(:), intent(inout) updatedvar )

The purpose of this procedure contains the algorithm to use the gaussian kernel function to map the effect of the bubbles. The effect of the bubbles affects the 3X3x3 cells that surround the bubble.

Definition at line 452 of file m_bubbles_EL_kernels.fpp.f90.

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

◆ s_get_cell()

subroutine m_bubbles_el_kernels::s_get_cell ( real(wp), dimension(3), intent(in) s_cell,
integer, dimension(3), intent(out) get_cell )

This subroutine transforms the computational coordinates of the bubble from real type into integer.

Parameters
s_cellComputational coordinates of the bubble, real type
get_cellComputational coordinates of the bubble, integer type

Definition at line 1010 of file m_bubbles_EL_kernels.fpp.f90.

Here is the caller graph for this function:

◆ s_get_char_vol()

subroutine m_bubbles_el_kernels::s_get_char_vol ( integer, intent(in) cellx,
integer, intent(in) celly,
integer, intent(in) cellz,
real(wp), intent(out) charvol )

The purpose of this procedure is to calculate the characteristic cell volume.

Parameters
cellxx-direction cell index
cellyy-direction cell index
cellzz-direction cell index
CharvolCharacteristic volume

Definition at line 953 of file m_bubbles_EL_kernels.fpp.f90.

◆ s_shift_cell_symmetric_bc()

subroutine m_bubbles_el_kernels::s_shift_cell_symmetric_bc ( integer, dimension(3), intent(inout) cellaux,
integer, dimension(3), intent(in) cell )

This subroutine relocates the current cell, if it intersects a symmetric boundary.

Parameters
cellCell of the current bubble
cellauxCell to map the bubble effect in.

Definition at line 805 of file m_bubbles_EL_kernels.fpp.f90.

Here is the caller graph for this function:

◆ s_smoothfunction()

subroutine m_bubbles_el_kernels::s_smoothfunction ( integer, intent(in) nbubs,
real(wp), dimension(1:lag_params%nbubs_glb, 1:2), intent(in) lbk_rad,
real(wp), dimension(1:lag_params%nbubs_glb, 1:2), intent(in) lbk_vel,
real(wp), dimension(1:lag_params%nbubs_glb, 1:3, 1:2), intent(in) lbk_s,
real(wp), dimension(1:lag_params%nbubs_glb, 1:3, 1:2), intent(in) lbk_pos,
type(scalar_field), dimension(:), intent(inout) updatedvar )

The purpose of this subroutine is to smear the strength of the lagrangian bubbles into the Eulerian framework using different approaches.

Parameters
nBubsNumber of lagrangian bubbles in the current domain
lbk_radRadius of the bubbles
lbk_velInterface velocity of the bubbles
lbk_sComputational coordinates of the bubbles
lbk_posSpatial coordinates of the bubbles
updatedvarEulerian variable to be updated

Definition at line 310 of file m_bubbles_EL_kernels.fpp.f90.

Here is the call graph for this function: