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

Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions. More...

Functions/Subroutines

subroutine, public s_comp_n_from_prim (vftmp, rtmp, ntmp, weights)
 Computes the bubble number density n from the primitive variables.
subroutine, public s_comp_n_from_cons (vftmp, nrtmp, ntmp, weights)
 Computes the bubble number density from the conservative void fraction and weighted bubble radii.
impure subroutine, public s_print_2d_array (a, div)
 Prints a 2D real array to standard output, optionally dividing each element by a given scalar.
impure subroutine, public s_initialize_bubbles_model ()
 bubbles_euler + polytropic bubbles_euler + non-polytropic bubbles_lagrange + non-polytropic
impure subroutine s_initialize_bubble_vars ()
impure subroutine, public s_initialize_nonpoly ()
 Initializes non-polydisperse bubble modeling.
elemental subroutine, public s_transcoeff (omega, peclet, re_trans, im_trans)
 Computes the transfer coefficient for the non-polytropic bubble compression process.
elemental subroutine, public s_int_to_str (i, res)
 Converts an integer to its trimmed string representation.
subroutine, public s_simpson (local_weight, local_r0)
 Computes the Simpson weights for quadrature.
pure real(wp) function, dimension(3), public f_cross (a, b)
 This procedure computes the cross product of two vectors.
elemental subroutine, public s_swap (lhs, rhs)
 This procedure swaps two real numbers.
real(wp) function, dimension(1:4, 1:4), public f_create_transform_matrix (param, center)
 This procedure creates a transformation matrix.
subroutine, public s_transform_vec (vec, matrix)
 This procedure transforms a vector by a matrix.
subroutine, public s_transform_triangle (triangle, matrix, matrix_n)
 This procedure transforms a triangle by a matrix, one vertex at a time.
subroutine, public s_transform_model (model, matrix, matrix_n)
 This procedure transforms a model by a matrix, one triangle at a time.
type(t_bbox) function, public f_create_bbox (model)
 This procedure creates a bounding box for a model.
elemental logical function, public f_xor (lhs, rhs)
 This procedure performs xor on lhs and rhs.
elemental integer function, public f_logical_to_int (predicate)
 This procedure converts logical to 1 or 0.
recursive real(wp) function, public unassociated_legendre (x, l)
 This function generates the unassociated legendre poynomials.
recursive real(wp) function, public spherical_harmonic_func (x, phi, l, m_order)
 This function calculates the spherical harmonic function evaluated at x and phi.
recursive real(wp) function, public associated_legendre (x, l, m_order)
 This function generates the associated legendre polynomials evaluated at x with inputs l and m.
elemental integer(kind=int64_kind) function, public double_factorial (n_in)
 This function calculates the double factorial value of an integer.
elemental integer(kind=int64_kind) function, public factorial (n_in)
 The following function calculates the factorial value of an integer.
real(wp) function, public f_cut_on (x, eps)
 This function calculates a smooth cut-on function that is zero for x values smaller than zero and goes to one. It can be used for generating smooth initial conditions.
real(wp) function, public f_cut_off (x, eps)
 This function calculates a smooth cut-off function that is one for x values smaller than zero and goes to zero. It can be used for generating smooth initial conditions.
real(wp) function f_gx (x)
 This function is a helper function for the functions f_cut_on and f_cut_off.
subroutine, public s_downsample_data (q_cons_vf, q_cons_temp, m_ds, n_ds, p_ds, m_glb_ds, n_glb_ds, p_glb_ds)
 Downsamples conservative variable fields by a factor of 3 in each direction using volume averaging.
subroutine, public s_upsample_data (q_cons_vf, q_cons_temp)
 Upsamples conservative variable fields from a coarsened grid back to the original resolution using interpolation.

Detailed Description

Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions.

Function/Subroutine Documentation

◆ associated_legendre()

recursive real(wp) function, public m_helper::associated_legendre ( real(wp), intent(in) x,
integer, intent(in) l,
integer, intent(in) m_order )

This function generates the associated legendre polynomials evaluated at x with inputs l and m.

Parameters
xis the input value
lis the degree
m_orderis the order
Returns
P is the associated legendre polynomial evaluated at x

Definition at line 1059 of file m_helper.fpp.f90.

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

◆ double_factorial()

elemental integer(kind=int64_kind) function, public m_helper::double_factorial ( integer, intent(in) n_in)

This function calculates the double factorial value of an integer.

Parameters
n_inis the input integer
Returns
R is the double factorial value of n

Definition at line 1084 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ f_create_bbox()

type(t_bbox) function, public m_helper::f_create_bbox ( type(t_model), intent(in) model)

This procedure creates a bounding box for a model.

Parameters
modelModel to create bounding box for.
Returns
Bounding box.

Definition at line 959 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ f_create_transform_matrix()

real(wp) function, dimension(1:4, 1:4), public m_helper::f_create_transform_matrix ( type(ic_model_parameters), intent(in) param,
real(wp), dimension(1:3), intent(in), optional center )

This procedure creates a transformation matrix.

Parameters
paramParameters for the transformation.
centerOptional center point for the transformation.
Returns
Transformation matrix.

Definition at line 847 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ f_cross()

pure real(wp) function, dimension(3), public m_helper::f_cross ( real(wp), dimension(3), intent(in) a,
real(wp), dimension(3), intent(in) b )

This procedure computes the cross product of two vectors.

Parameters
aFirst vector.
bSecond vector.
Returns
The cross product of the two vectors.

Definition at line 804 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ f_cut_off()

real(wp) function, public m_helper::f_cut_off ( real(wp), intent(in) x,
real(wp), intent(in) eps )

This function calculates a smooth cut-off function that is one for x values smaller than zero and goes to zero. It can be used for generating smooth initial conditions.

Parameters
xis the input value
epsis the smoothing parameter
Returns
fx is the cut-ff function evaluated at x

Definition at line 1131 of file m_helper.fpp.f90.

Here is the call graph for this function:

◆ f_cut_on()

real(wp) function, public m_helper::f_cut_on ( real(wp), intent(in) x,
real(wp), intent(in) eps )

This function calculates a smooth cut-on function that is zero for x values smaller than zero and goes to one. It can be used for generating smooth initial conditions.

Parameters
xis the input value
epsis the smoothing parameter
Returns
fx is the cut-on function evaluated at x

Definition at line 1116 of file m_helper.fpp.f90.

Here is the call graph for this function:

◆ f_gx()

real(wp) function m_helper::f_gx ( real(wp), intent(in) x)

This function is a helper function for the functions f_cut_on and f_cut_off.

Parameters
xis the input value
Returns
gx is the result

Definition at line 1143 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ f_logical_to_int()

elemental integer function, public m_helper::f_logical_to_int ( logical, intent(in) predicate)

This procedure converts logical to 1 or 0.

Parameters
predicateA Logical argument.
Returns
1 if .true., 0 if .false..

Definition at line 999 of file m_helper.fpp.f90.

◆ f_xor()

elemental logical function, public m_helper::f_xor ( logical, intent(in) lhs,
logical, intent(in) rhs )

This procedure performs xor on lhs and rhs.

Parameters
lhslogical input.
rhsother logical input.
Returns
xored result.

Definition at line 988 of file m_helper.fpp.f90.

◆ factorial()

elemental integer(kind=int64_kind) function, public m_helper::factorial ( integer, intent(in) n_in)

The following function calculates the factorial value of an integer.

Parameters
n_inis the input integer
Returns
R is the factorial value of n

Definition at line 1098 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ s_comp_n_from_cons()

subroutine, public m_helper::s_comp_n_from_cons ( real(wp), intent(in) vftmp,
real(wp), dimension(nb), intent(in) nrtmp,
real(wp), intent(out) ntmp,
real(wp), dimension(nb), intent(in) weights )

Computes the bubble number density from the conservative void fraction and weighted bubble radii.

Definition at line 379 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ s_comp_n_from_prim()

subroutine, public m_helper::s_comp_n_from_prim ( real(wp), intent(in) vftmp,
real(wp), dimension(nb), intent(in) rtmp,
real(wp), intent(out) ntmp,
real(wp), dimension(nb), intent(in) weights )

Computes the bubble number density n from the primitive variables.

Parameters
vftmpis the void fraction
Rtmpis the bubble radii
ntmpis the output number bubble density
weightsis the quadrature weights

Definition at line 350 of file m_helper.fpp.f90.

◆ s_downsample_data()

subroutine, public m_helper::s_downsample_data ( type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf,
type(scalar_field), dimension(sys_size), intent(inout) q_cons_temp,
integer, intent(inout) m_ds,
integer, intent(inout) n_ds,
integer, intent(inout) p_ds,
integer, intent(inout) m_glb_ds,
integer, intent(inout) n_glb_ds,
integer, intent(inout) p_glb_ds )

Downsamples conservative variable fields by a factor of 3 in each direction using volume averaging.

Definition at line 1157 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ s_initialize_bubble_vars()

impure subroutine m_helper::s_initialize_bubble_vars

Definition at line 618 of file m_helper.fpp.f90.

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

◆ s_initialize_bubbles_model()

impure subroutine, public m_helper::s_initialize_bubbles_model

bubbles_euler + polytropic bubbles_euler + non-polytropic bubbles_lagrange + non-polytropic

Definition at line 442 of file m_helper.fpp.f90.

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

◆ s_initialize_nonpoly()

impure subroutine, public m_helper::s_initialize_nonpoly

Initializes non-polydisperse bubble modeling.

Definition at line 671 of file m_helper.fpp.f90.

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

◆ s_int_to_str()

elemental subroutine, public m_helper::s_int_to_str ( integer, intent(in) i,
character(len=*), intent(inout) res )

Converts an integer to its trimmed string representation.

Definition at line 750 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ s_print_2d_array()

impure subroutine, public m_helper::s_print_2d_array ( real(wp), dimension(:, :), intent(in) a,
real(wp), intent(in), optional div )

Prints a 2D real array to standard output, optionally dividing each element by a given scalar.

Definition at line 408 of file m_helper.fpp.f90.

◆ s_simpson()

subroutine, public m_helper::s_simpson ( real(wp), dimension(:), intent(inout) local_weight,
real(wp), dimension(:), intent(inout) local_r0 )

Computes the Simpson weights for quadrature.

Definition at line 760 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ s_swap()

elemental subroutine, public m_helper::s_swap ( real(wp), intent(inout) lhs,
real(wp), intent(inout) rhs )

This procedure swaps two real numbers.

Parameters
lhsLeft-hand side.
rhsRight-hand side.

Definition at line 833 of file m_helper.fpp.f90.

◆ s_transcoeff()

elemental subroutine, public m_helper::s_transcoeff ( real(wp), intent(in) omega,
real(wp), intent(in) peclet,
real(wp), intent(out) re_trans,
real(wp), intent(out) im_trans )

Computes the transfer coefficient for the non-polytropic bubble compression process.

Parameters
omeganatural frequencies
pecletPeclet number
Re_transReal part of the transport coefficients
Im_transImaginary part of the transport coefficients

Definition at line 730 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ s_transform_model()

subroutine, public m_helper::s_transform_model ( type(t_model), intent(inout) model,
real(wp), dimension(1:4, 1:4), intent(in) matrix,
real(wp), dimension(1:4, 1:4), intent(in) matrix_n )

This procedure transforms a model by a matrix, one triangle at a time.

Parameters
modelModel to transform.
matrixTransformation matrix.
matrix_nNormal transformation matrix.

Definition at line 943 of file m_helper.fpp.f90.

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

◆ s_transform_triangle()

subroutine, public m_helper::s_transform_triangle ( type(t_triangle), intent(inout) triangle,
real(wp), dimension(1:4, 1:4), intent(in) matrix,
real(wp), dimension(1:4, 1:4), intent(in) matrix_n )

This procedure transforms a triangle by a matrix, one vertex at a time.

Parameters
triangleTriangle to transform.
matrixTransformation matrix.
matrix_nNormal transformation matrix.

Definition at line 924 of file m_helper.fpp.f90.

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

◆ s_transform_vec()

subroutine, public m_helper::s_transform_vec ( real(wp), dimension(1:3), intent(inout) vec,
real(wp), dimension(1:4, 1:4), intent(in) matrix )

This procedure transforms a vector by a matrix.

Parameters
vecVector to transform.
matrixTransformation matrix.

Definition at line 908 of file m_helper.fpp.f90.

Here is the caller graph for this function:

◆ s_upsample_data()

subroutine, public m_helper::s_upsample_data ( type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf,
type(scalar_field), dimension(sys_size), intent(inout) q_cons_temp )

Upsamples conservative variable fields from a coarsened grid back to the original resolution using interpolation.

Definition at line 1199 of file m_helper.fpp.f90.

◆ spherical_harmonic_func()

recursive real(wp) function, public m_helper::spherical_harmonic_func ( real(wp), intent(in) x,
real(wp), intent(in) phi,
integer, intent(in) l,
integer, intent(in) m_order )

This function calculates the spherical harmonic function evaluated at x and phi.

Parameters
xis the x coordinate
phiis the phi coordinate
lis the degree
m_orderis the order
Returns
Y is the spherical harmonic function evaluated at x and phi

Definition at line 1037 of file m_helper.fpp.f90.

Here is the call graph for this function:

◆ unassociated_legendre()

recursive real(wp) function, public m_helper::unassociated_legendre ( real(wp), intent(in) x,
integer, intent(in) l )

This function generates the unassociated legendre poynomials.

Parameters
xis the input value
lis the degree
Returns
P is the unassociated legendre polynomial evaluated at x

Definition at line 1015 of file m_helper.fpp.f90.

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