@file m_global_parameters.f90 @brief Contains module m_global_parameters @author S. Bryngelson, K. Schimdmayer, V. Coralic, J. Meng, K. Maeda, T. Colonius @version 1.0 @date JUNE 06 2019 @brief The module contains all of the parameters describing the program logistics, the computational domain and the simulation algorithm. Additionally, for the volume fraction model, physical parameters of each of the fluids present in the flow are located here. They include stiffened gas equation of state parameters, the Reynolds numbers and the Weber numbers.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | num_procs | ||||
| integer, | public, | parameter | :: | num_stcls_min | = | 5 | |
| integer, | public, | parameter | :: | path_len | = | 400 | |
| integer, | public, | parameter | :: | name_len | = | 50 | |
| character, | public, | parameter | :: | dflt_char | = | ' ' | |
| real(kind=kind(0d0)), | public, | parameter | :: | dflt_real | = | -1d6 | |
| integer, | public, | parameter | :: | dflt_int | = | -100 | |
| real(kind=kind(0d0)), | public, | parameter | :: | sgm_eps | = | 1d-16 | |
| integer, | public, | parameter | :: | fourier_rings | = | 5 | |
| character(len=path_len), | public | :: | case_dir | ||||
| logical, | public | :: | run_time_info | ||||
| logical, | public | :: | debug | ||||
| integer, | public | :: | t_step_old | ||||
| real(kind=kind(0d0)), | public, | parameter | :: | small_alf | = | 1d-7 | |
| integer, | public | :: | proc_rank | ||||
| integer, | public | :: | m | @name Number of cells in the x-, y- and z-directions, respectively @{ |
|||
| integer, | public | :: | n | @name Number of cells in the x-, y- and z-directions, respectively @{ |
|||
| integer, | public | :: | p | @name Number of cells in the x-, y- and z-directions, respectively @{ |
|||
| integer, | public | :: | m_glb | @} @name Global number of cells in each direction @{ |
|||
| integer, | public | :: | n_glb | @} @name Global number of cells in each direction @{ |
|||
| integer, | public | :: | p_glb | @} @name Global number of cells in each direction @{ |
|||
| logical, | public | :: | cyl_coord | @} @name Cylindrical coordinates (either axisymmetric or full 3D) @{ |
|||
| integer, | public | :: | grid_geometry | ||||
| real(kind=kind(0d0)), | public, | target, allocatable, dimension(:) | :: | x_cb | @} @name Cell-boundary (CB) locations in the x-, y- and z-directions, respectively @{ |
||
| real(kind=kind(0d0)), | public, | target, allocatable, dimension(:) | :: | y_cb | @} @name Cell-boundary (CB) locations in the x-, y- and z-directions, respectively @{ |
||
| real(kind=kind(0d0)), | public, | target, allocatable, dimension(:) | :: | z_cb | @} @name Cell-boundary (CB) locations in the x-, y- and z-directions, respectively @{ |
||
| real(kind=kind(0d0)), | public, | target, allocatable, dimension(:) | :: | x_cc | @} @name Cell-center (CC) locations in the x-, y- and z-directions, respectively @{ |
||
| real(kind=kind(0d0)), | public, | target, allocatable, dimension(:) | :: | y_cc | @} @name Cell-center (CC) locations in the x-, y- and z-directions, respectively @{ |
||
| real(kind=kind(0d0)), | public, | target, allocatable, dimension(:) | :: | z_cc | @} @name Cell-center (CC) locations in the x-, y- and z-directions, respectively @{ |
||
| real(kind=kind(0d0)), | public, | target, allocatable, dimension(:) | :: | dx | @} @name Cell-width distributions in the x-, y- and z-directions, respectively @{ |
||
| real(kind=kind(0d0)), | public, | target, allocatable, dimension(:) | :: | dy | @} @name Cell-width distributions in the x-, y- and z-directions, respectively @{ |
||
| real(kind=kind(0d0)), | public, | target, allocatable, dimension(:) | :: | dz | @} @name Cell-width distributions in the x-, y- and z-directions, respectively @{ |
||
| real(kind=kind(0d0)), | public | :: | dt | @} |
|||
| integer, | public | :: | t_step_start | @name Starting time-step iteration, stopping time-step iteration and the number of time-step iterations between successive solution backups, respectively @{ |
|||
| integer, | public | :: | t_step_stop | @name Starting time-step iteration, stopping time-step iteration and the number of time-step iterations between successive solution backups, respectively @{ |
|||
| integer, | public | :: | t_step_save | @name Starting time-step iteration, stopping time-step iteration and the number of time-step iterations between successive solution backups, respectively @{ |
|||
| integer, | public | :: | model_eqns | @} |
|||
| integer, | public | :: | num_dims | ||||
| integer, | public | :: | num_fluids | ||||
| logical, | public | :: | adv_alphan | ||||
| logical, | public | :: | mpp_lim | ||||
| integer, | public | :: | time_stepper | ||||
| integer, | public | :: | weno_vars | ||||
| integer, | public | :: | weno_order | ||||
| integer, | public | :: | weno_polyn | ||||
| real(kind=kind(0d0)), | public | :: | weno_eps | ||||
| logical, | public | :: | mapped_weno | ||||
| logical, | public | :: | mp_weno | ||||
| logical, | public | :: | weno_Re_flux | ||||
| integer, | public | :: | riemann_solver | ||||
| integer, | public | :: | wave_speeds | ||||
| integer, | public | :: | avg_state | ||||
| logical, | public | :: | alt_soundspeed | ||||
| logical, | public | :: | null_weights | ||||
| logical, | public | :: | mixture_err | ||||
| logical, | public | :: | cu_tensor | ||||
| integer, | public | :: | cpu_start | ||||
| integer, | public | :: | cpu_end | ||||
| integer, | public | :: | cpu_rate | ||||
| type(int_bounds_info), | public | :: | bc_x | @name Boundary conditions (BC) in the x-, y- and z-directions, respectively @{ |
|||
| type(int_bounds_info), | public | :: | bc_y | @name Boundary conditions (BC) in the x-, y- and z-directions, respectively @{ |
|||
| type(int_bounds_info), | public | :: | bc_z | @name Boundary conditions (BC) in the x-, y- and z-directions, respectively @{ |
|||
| type(int_bounds_info), | public | :: | bc_x_glb | ||||
| type(int_bounds_info), | public | :: | bc_y_glb | ||||
| type(int_bounds_info), | public | :: | bc_z_glb | ||||
| logical, | public | :: | parallel_io | @} |
|||
| integer, | public | :: | precision | ||||
| integer, | public, | allocatable, dimension(:) | :: | proc_coords | Processor coordinates in MPI_CART_COMM |
||
| integer, | public, | allocatable, dimension(:) | :: | start_idx | Starting cell-center index of local processor in global grid |
||
| type(mpi_io_var), | public | :: | MPI_IO_DATA | ||||
| character(len=name_len), | public | :: | mpiiofs | @name MPI info for parallel IO with Lustre file systems @{ |
|||
| integer, | public | :: | mpi_info_int | ||||
| integer, | public | :: | sys_size | @name Annotations of the structure of the state and flux vectors in terms of the size and the configuration of the system of equations to which they belong @{ |
|||
| type(int_bounds_info), | public | :: | cont_idx | ||||
| type(int_bounds_info), | public | :: | mom_idx | ||||
| integer, | public | :: | E_idx | ||||
| type(int_bounds_info), | public | :: | adv_idx | ||||
| type(int_bounds_info), | public | :: | internalEnergies_idx | ||||
| type(bub_bounds_info), | public | :: | bub_idx | ||||
| integer, | public | :: | alf_idx | ||||
| integer, | public | :: | gamma_idx | ||||
| integer, | public | :: | pi_inf_idx | ||||
| integer, | public, | dimension(2) | :: | Re_size | @} @name The number of fluids, along with their identifying indexes, respectively, for which viscous effects, e.g. the shear and/or the volume Reynolds (Re) numbers, will be non-negligible. @{ |
||
| integer, | public, | allocatable, dimension(:, :) | :: | Re_idx | |||
| integer, | public, | dimension(3) | :: | dir_idx | @} @name The coordinate direction indexes and flags (flg), respectively, for which the configurations will be determined with respect to a working direction and that will be used to isolate the contributions, in that direction, in the dimensionally split system of equations. @{ |
||
| real(kind=kind(0d0)), | public, | dimension(3) | :: | dir_flg | |||
| integer, | public | :: | buff_size | @} The number of cells that are necessary to be able to store enough boundary conditions data to march the solution in the physical computational domain to the next time-step. |
|||
| integer, | public | :: | startx | ||||
| integer, | public | :: | starty | ||||
| integer, | public | :: | startz | ||||
| type(physical_parameters), | public, | dimension(num_fluids_max) | :: | fluid_pp | Database of the physical parameters of each of the fluids that is present in the flow. These include the stiffened gas equation of state parameters, the Reynolds numbers and the Weber numbers. |
||
| integer, | public | :: | fd_order | The order of the finite-difference (fd) approximations of the first-order derivatives that need to be evaluated when the CoM or flow probe data files are to be written at each time step |
|||
| integer, | public | :: | fd_number | The finite-difference number is given by MAX(1, fd_order/2). Essentially, it is a measure of the half-size of the finite-difference stencil for the selected order of accuracy. |
|||
| logical, | public, | dimension(num_fluids_max) | :: | com_wrt | |||
| logical, | public, | dimension(num_fluids_max) | :: | cb_wrt | |||
| logical, | public | :: | probe_wrt | ||||
| logical, | public | :: | integral_wrt | ||||
| integer, | public | :: | num_probes | ||||
| integer, | public | :: | num_integrals | ||||
| type(probe_parameters), | public, | dimension(num_probes_max) | :: | probe | |||
| type(integral_parameters), | public, | dimension(num_probes_max) | :: | integral | |||
| real(kind=kind(0d0)), | public, | dimension(5) | :: | threshold_mf | |||
| integer, | public, | dimension(5) | :: | moment_order | |||
| real(kind=kind(0d0)), | public | :: | rhoref | @name Reference density and pressure for Tait EOS @{ |
|||
| real(kind=kind(0d0)), | public | :: | pref | @name Reference density and pressure for Tait EOS @{ |
|||
| integer, | public | :: | nb | @} @name Bubble modeling @{ |
|||
| real(kind=kind(0d0)), | public | :: | R0ref | ||||
| real(kind=kind(0d0)), | public | :: | Ca | ||||
| real(kind=kind(0d0)), | public | :: | Web | ||||
| real(kind=kind(0d0)), | public | :: | Re_inv | ||||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | weight | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | R0 | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | V0 | |||
| logical, | public | :: | bubbles | ||||
| logical, | public | :: | polytropic | ||||
| logical, | public | :: | polydisperse | ||||
| integer, | public | :: | bubble_model | ||||
| integer, | public | :: | thermal | ||||
| real(kind=kind(0d0)), | public, | allocatable, dimension(:, :, :) | :: | ptil | |||
| real(kind=kind(0d0)), | public | :: | poly_sigma | ||||
| logical, | public | :: | qbmm | ||||
| integer, | public | :: | nmom | ||||
| integer, | public | :: | nnode | ||||
| integer, | public | :: | nmomsp | ||||
| integer, | public | :: | nmomtot | ||||
| integer, | public | :: | R0_type | ||||
| type(scalar_field), | public, | allocatable, dimension(:) | :: | mom_sp | |||
| type(scalar_field), | public, | allocatable, dimension(:, :, :) | :: | mom_3d | |||
| real(kind=kind(0d0)), | public | :: | R_n | @} @name Physical bubble parameters (see Ando 2010, Preston 2007) @{ |
|||
| real(kind=kind(0d0)), | public | :: | R_v | @} @name Physical bubble parameters (see Ando 2010, Preston 2007) @{ |
|||
| real(kind=kind(0d0)), | public | :: | phi_vn | @} @name Physical bubble parameters (see Ando 2010, Preston 2007) @{ |
|||
| real(kind=kind(0d0)), | public | :: | phi_nv | @} @name Physical bubble parameters (see Ando 2010, Preston 2007) @{ |
|||
| real(kind=kind(0d0)), | public | :: | Pe_c | @} @name Physical bubble parameters (see Ando 2010, Preston 2007) @{ |
|||
| real(kind=kind(0d0)), | public | :: | Tw | @} @name Physical bubble parameters (see Ando 2010, Preston 2007) @{ |
|||
| real(kind=kind(0d0)), | public | :: | pv | @} @name Physical bubble parameters (see Ando 2010, Preston 2007) @{ |
|||
| real(kind=kind(0d0)), | public | :: | M_n | @} @name Physical bubble parameters (see Ando 2010, Preston 2007) @{ |
|||
| real(kind=kind(0d0)), | public | :: | M_v | @} @name Physical bubble parameters (see Ando 2010, Preston 2007) @{ |
|||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | k_n | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | k_v | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | pb0 | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | mass_n0 | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | mass_v0 | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | Pe_T | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | Re_trans_T | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | Re_trans_c | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | Im_trans_T | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | Im_trans_c | |||
| real(kind=kind(0d0)), | public, | dimension(:), allocatable | :: | omegaN | |||
| real(kind=kind(0d0)), | public | :: | mul0 | ||||
| real(kind=kind(0d0)), | public | :: | ss | ||||
| real(kind=kind(0d0)), | public | :: | gamma_v | ||||
| real(kind=kind(0d0)), | public | :: | mu_v | ||||
| real(kind=kind(0d0)), | public | :: | gamma_m | ||||
| real(kind=kind(0d0)), | public | :: | gamma_n | ||||
| real(kind=kind(0d0)), | public | :: | mu_n | ||||
| real(kind=kind(0d0)), | public | :: | gam | ||||
| logical, | public | :: | monopole | @} @name Acoustic monopole parameters @{ |
|||
| type(mono_parameters), | public, | dimension(num_probes_max) | :: | mono | |||
| integer, | public | :: | num_mono | ||||
| real(kind=kind(0d0)), | public | :: | mytime | @} |
|||
| real(kind=kind(0d0)), | public | :: | finaltime | ||||
| logical, | public | :: | weno_flat | ||||
| logical, | public | :: | riemann_flat | ||||
| logical, | public | :: | cu_mpi | ||||
| real(kind=kind(0d0)), | public, | parameter | :: | pi | = | 3.141592653589793d0 |
Assigns default values to the user inputs before reading them in. This enables for an easier consistency check of these parameters once they are read from the input file.
The computation of parameters, the allocation of memory, the association of pointers and/or the execution of any other procedures that are necessary to setup the module.
Initializes non-polydisperse bubble modeling ! thermal properties !!!
Computes transfer coefficient for non-polydisperse bubble modeling (Preston 2007) @param omega Frequency @param peclet Peclet number @param Re_trans Real part of transfer coefficient @param Im_trans Imaginary part of transfer coefficient
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=kind(0.d0)), | intent(in) | :: | omega | |||
| real(kind=kind(0.d0)), | intent(in) | :: | peclet | |||
| real(kind=kind(0.d0)), | intent(out) | :: | Re_trans | |||
| real(kind=kind(0.d0)), | intent(out) | :: | Im_trans |
Initializes parallel infrastructure
Module deallocation and/or disassociation procedures
Computes the bubble number density n from the conservative variables \f$ n = \sqrt{ \frac{4 \pi}{3} } \frac{ nR^3}{\alpha} \f$ @param vftmp is the void fraction @param nRtmp is the bubble number density times the bubble radii @param ntmp is the output number bubble density
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=kind(0d0)), | intent(in) | :: | vftmp | |||
| real(kind=kind(0d0)), | intent(in), | dimension(:) | :: | nRtmp | ||
| real(kind=kind(0d0)), | intent(out) | :: | ntmp |
Computes the bubble number density n from the primitive variables \f$ n = \sqrt{ \frac{3}{4 \pi} } \frac{ \alpha }{ R^3} \f$ @param vftmp is the void fraction @param Rtmp is the bubble radii @param ntmp is the output number bubble density
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=kind(0.d0)), | intent(in) | :: | vftmp | |||
| real(kind=kind(0.d0)), | intent(in), | dimension(:) | :: | Rtmp | ||
| real(kind=kind(0.d0)), | intent(out) | :: | ntmp |
Computes the quadrature for polydisperse bubble populations @param func is the bubble dynamic variables for each bin @param mom is the computed moment
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=kind(0.d0)), | intent(in), | dimension(:) | :: | func | ||
| real(kind=kind(0.d0)), | intent(out) | :: | mom |
Computes the Simpson weights for quadrature