MFC: Simulation
High-fidelity multiphase flow simulation
Loading...
Searching...
No Matches
m_bubbles_el_kernels Module Reference

This module contains kernel functions used to map the effect of the lagrangian bubbles in the Eulerian framework. 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

This module contains kernel functions used to map the effect of the lagrangian bubbles in the Eulerian framework.

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

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

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.

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
sComputational coordinates of the bubble, real type
get_cellComputational coordinates of the bubble, integer type
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
cellComputational coordinates (x, y, z)
CharvolCharacteristic volume

◆ 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.
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
Here is the call graph for this function: