|
MFC
Exascale flow solver
|
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) |
| Compute the bubble number density from the conservative void fraction and weighted bubble radii. | |
| impure subroutine, public | s_print_2d_array (a, div) |
| Print a 2D real array to standard output, optionally dividing each element by a given scalar. | |
| impure subroutine, public | s_initialize_bubbles_model () |
| Initialize bubble model arrays for Euler or Lagrangian bubbles with polytropic or non-polytropic gas. | |
| impure subroutine | s_initialize_bubble_vars () |
| Set bubble physical parameters and nondimensional numbers from the input configuration. | |
| 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) |
| Convert 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) |
| Compute the cross product of two vectors. | |
| elemental subroutine, public | s_swap (lhs, rhs) |
| Swap two real numbers. | |
| real(wp) function, dimension(1:4, 1:4), public | f_create_transform_matrix (param, center) |
| Create a transformation matrix. | |
| subroutine, public | s_transform_vec (vec, matrix) |
| Transform a vector by a matrix. | |
| subroutine, public | s_transform_triangle (triangle, matrix, matrix_n) |
| Transform a triangle by a matrix, one vertex at a time. | |
| subroutine, public | s_transform_model (model, matrix, matrix_n) |
| Transform a model by a matrix, one triangle at a time. | |
| type(t_bbox) function, public | f_create_bbox (model) |
| Create a bounding box for a model. | |
| elemental logical function, public | f_xor (lhs, rhs) |
| Perform XOR on lhs and rhs. | |
| elemental integer function, public | f_logical_to_int (predicate) |
| Convert a logical to 1 or 0. | |
| real(wp) function, public | real_ylm (theta, phi, l, m) |
| Real spherical harmonic Y_lm(theta, phi). theta = polar angle from +z (acos(z/r)), phi = atan2(y,x). Uses associated Legendre P_l^|m|(cos theta). Standard normalisation. | |
| recursive real(wp) function, public | associated_legendre (x, l, m_order) |
| Associated Legendre polynomial P_l^m(x) (Ferrers function, Condon-Shortley phase). Valid for integer l >= 0, 0 <= m <= l, and x in [-1,1]. Returns 0 for |m| > l or l < 0. Formulas: DLMF 14.10.3 (recurrence in degree), Wikipedia "Associated Legendre
polynomials" (P_l^l and P_l^{l-1} identities). Recurrence: (l-m)P_l^m = (2l-1)x P_{l-1}^m - (l+m-1)P_{l-2}^m. | |
| elemental integer(kind=int64_kind) function, public | double_factorial (n_in) |
| Calculate the double factorial of an integer. | |
| elemental integer(kind=int64_kind) function, public | factorial (n_in) |
| Calculate the factorial of an integer. | |
| real(wp) function, public | f_cut_on (x, eps) |
| Calculate a smooth cut-on function that is zero for x values smaller than zero and goes to one, for generating smooth initial conditions. | |
| real(wp) function, public | f_cut_off (x, eps) |
| Calculate a smooth cut-off function that is one for x values smaller than zero and goes to zero, for generating smooth initial conditions. | |
| real(wp) function | f_gx (x) |
| Helper function for 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) |
| Downsample 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) |
| Upsample conservative variable fields from a coarsened grid back to the original resolution using interpolation. | |
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions.
| recursive real(wp) function, public m_helper::associated_legendre | ( | real(wp), intent(in) | x, |
| integer, intent(in) | l, | ||
| integer, intent(in) | m_order ) |
Associated Legendre polynomial P_l^m(x) (Ferrers function, Condon-Shortley phase). Valid for integer l >= 0, 0 <= m <= l, and x in [-1,1]. Returns 0 for |m| > l or l < 0. Formulas: DLMF 14.10.3 (recurrence in degree), Wikipedia "Associated Legendre polynomials" (P_l^l and P_l^{l-1} identities). Recurrence: (l-m)P_l^m = (2l-1)x P_{l-1}^m - (l+m-1)P_{l-2}^m.
| x | argument (typically cos(theta)), should be in [-1,1] |
| l | degree (>= 0) |
| m_order | order (0 <= m_order <= l) |
Definition at line 978 of file m_helper.fpp.f90.
| elemental integer(kind=int64_kind) function, public m_helper::double_factorial | ( | integer, intent(in) | n_in | ) |
Calculate the double factorial of an integer.
Definition at line 1013 of file m_helper.fpp.f90.
Create a bounding box for a model.
Definition at line 898 of file m_helper.fpp.f90.
| 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 ) |
Create a transformation matrix.
Definition at line 820 of file m_helper.fpp.f90.
| 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 ) |
Compute the cross product of two vectors.
Definition at line 780 of file m_helper.fpp.f90.
Calculate a smooth cut-off function that is one for x values smaller than zero and goes to zero, for generating smooth initial conditions.
Definition at line 1049 of file m_helper.fpp.f90.
Calculate a smooth cut-on function that is zero for x values smaller than zero and goes to one, for generating smooth initial conditions.
Definition at line 1038 of file m_helper.fpp.f90.
Helper function for f_cut_on and f_cut_off.
Definition at line 1059 of file m_helper.fpp.f90.
| elemental integer function, public m_helper::f_logical_to_int | ( | logical, intent(in) | predicate | ) |
Convert a logical to 1 or 0.
Definition at line 933 of file m_helper.fpp.f90.
| elemental logical function, public m_helper::f_xor | ( | logical, intent(in) | lhs, |
| logical, intent(in) | rhs ) |
Perform XOR on lhs and rhs.
Definition at line 923 of file m_helper.fpp.f90.
| elemental integer(kind=int64_kind) function, public m_helper::factorial | ( | integer, intent(in) | n_in | ) |
Calculate the factorial of an integer.
Definition at line 1025 of file m_helper.fpp.f90.
| real(wp) function, public m_helper::real_ylm | ( | real(wp), intent(in) | theta, |
| real(wp), intent(in) | phi, | ||
| integer, intent(in) | l, | ||
| integer, intent(in) | m ) |
Real spherical harmonic Y_lm(theta, phi). theta = polar angle from +z (acos(z/r)), phi = atan2(y,x). Uses associated Legendre P_l^|m|(cos theta). Standard normalisation.
Definition at line 948 of file m_helper.fpp.f90.
| 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 ) |
Compute the bubble number density from the conservative void fraction and weighted bubble radii.
Definition at line 374 of file m_helper.fpp.f90.
| 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.
Definition at line 345 of file m_helper.fpp.f90.
| 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 ) |
Downsample conservative variable fields by a factor of 3 in each direction using volume averaging.
Definition at line 1073 of file m_helper.fpp.f90.
|
private |
Set bubble physical parameters and nondimensional numbers from the input configuration.
Definition at line 609 of file m_helper.fpp.f90.
| impure subroutine, public m_helper::s_initialize_bubbles_model |
Initialize bubble model arrays for Euler or Lagrangian bubbles with polytropic or non-polytropic gas.
Definition at line 433 of file m_helper.fpp.f90.
| impure subroutine, public m_helper::s_initialize_nonpoly |
Initializes non-polydisperse bubble modeling.
Definition at line 662 of file m_helper.fpp.f90.
| elemental subroutine, public m_helper::s_int_to_str | ( | integer, intent(in) | i, |
| character(len=*), intent(inout) | res ) |
Convert an integer to its trimmed string representation.
Definition at line 729 of file m_helper.fpp.f90.
| impure subroutine, public m_helper::s_print_2d_array | ( | real(wp), dimension(:,:), intent(in) | a, |
| real(wp), intent(in), optional | div ) |
Print a 2D real array to standard output, optionally dividing each element by a given scalar.
Definition at line 403 of file m_helper.fpp.f90.
| 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 740 of file m_helper.fpp.f90.
| elemental subroutine, public m_helper::s_swap | ( | real(wp), intent(inout) | lhs, |
| real(wp), intent(inout) | rhs ) |
Swap two real numbers.
Definition at line 808 of file m_helper.fpp.f90.
| 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.
Definition at line 710 of file m_helper.fpp.f90.
| 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 ) |
Transform a model by a matrix, one triangle at a time.
Definition at line 885 of file m_helper.fpp.f90.
| 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 ) |
Transform a triangle by a matrix, one vertex at a time.
Definition at line 870 of file m_helper.fpp.f90.
| 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 ) |
Transform a vector by a matrix.
Definition at line 858 of file m_helper.fpp.f90.
| 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 ) |
Upsample conservative variable fields from a coarsened grid back to the original resolution using interpolation.
Definition at line 1115 of file m_helper.fpp.f90.