m_global_parameters Module

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


Uses

  • module~~m_global_parameters~~UsesGraph module~m_global_parameters m_global_parameters openacc openacc module~m_global_parameters->openacc m_derived_types m_derived_types module~m_global_parameters->m_derived_types mpi mpi module~m_global_parameters->mpi

Used by

  • module~~m_global_parameters~~UsedByGraph module~m_global_parameters m_global_parameters module~m_bubbles m_bubbles module~m_bubbles->module~m_global_parameters module~m_mpi_proxy m_mpi_proxy module~m_bubbles->module~m_mpi_proxy module~m_variables_conversion m_variables_conversion module~m_bubbles->module~m_variables_conversion module~m_mpi_proxy->module~m_global_parameters module~m_variables_conversion->module~m_global_parameters module~m_variables_conversion->module~m_mpi_proxy module~m_derived_variables m_derived_variables module~m_derived_variables->module~m_global_parameters module~m_derived_variables->module~m_mpi_proxy module~m_time_steppers m_time_steppers module~m_derived_variables->module~m_time_steppers module~m_start_up m_start_up module~m_start_up->module~m_global_parameters module~m_start_up->module~m_mpi_proxy module~m_start_up->module~m_variables_conversion program~p_main p_main program~p_main->module~m_global_parameters program~p_main->module~m_mpi_proxy program~p_main->module~m_variables_conversion program~p_main->module~m_derived_variables program~p_main->module~m_start_up program~p_main->module~m_time_steppers module~m_rhs m_rhs program~p_main->module~m_rhs module~m_qbmm m_qbmm program~p_main->module~m_qbmm module~m_riemann_solvers m_riemann_solvers program~p_main->module~m_riemann_solvers module~m_time_steppers->module~m_global_parameters module~m_time_steppers->module~m_bubbles module~m_time_steppers->module~m_mpi_proxy module~m_time_steppers->module~m_rhs module~m_rhs->module~m_global_parameters module~m_rhs->module~m_bubbles module~m_rhs->module~m_mpi_proxy module~m_rhs->module~m_variables_conversion module~m_rhs->module~m_qbmm module~m_rhs->module~m_riemann_solvers module~m_qbmm->module~m_global_parameters module~m_qbmm->module~m_mpi_proxy module~m_qbmm->module~m_variables_conversion module~m_riemann_solvers->module~m_global_parameters module~m_riemann_solvers->module~m_bubbles module~m_riemann_solvers->module~m_mpi_proxy module~m_riemann_solvers->module~m_variables_conversion

Contents


Variables

TypeVisibilityAttributesNameInitial
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

Subroutines

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.

Arguments

None

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.

Arguments

None

public subroutine s_initialize_nonpoly()

Initializes non-polydisperse bubble modeling ! thermal properties !!!

Arguments

None

public subroutine s_transcoeff(omega, peclet, Re_trans, Im_trans)

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

Arguments

TypeIntentOptionalAttributesName
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

public subroutine s_initialize_parallel_io()

Initializes parallel infrastructure

Arguments

None

Module deallocation and/or disassociation procedures

Arguments

None

public subroutine s_comp_n_from_cons(vftmp, nRtmp, ntmp)

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

Arguments

TypeIntentOptionalAttributesName
real(kind=kind(0d0)), intent(in) :: vftmp
real(kind=kind(0d0)), intent(in), dimension(:):: nRtmp
real(kind=kind(0d0)), intent(out) :: ntmp

public subroutine s_comp_n_from_prim(vftmp, Rtmp, 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

Arguments

TypeIntentOptionalAttributesName
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

public subroutine s_quad(func, mom)

Computes the quadrature for polydisperse bubble populations @param func is the bubble dynamic variables for each bin @param mom is the computed moment

Arguments

TypeIntentOptionalAttributesName
real(kind=kind(0.d0)), intent(in), dimension(:):: func
real(kind=kind(0.d0)), intent(out) :: mom

public subroutine s_simpson()

Computes the Simpson weights for quadrature

Arguments

None