MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_constants.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/common/m_constants.fpp"
2!>
3!! @file
4!! @brief Contains constant values used throughout the code(s).
5
6!> @brief Compile-time constant parameters: default values, tolerances, and physical constants
8
10
11 character, parameter :: dflt_char = ' ' !< Default string value
12 real(wp), parameter :: dflt_real = -1.e6_wp !< Default real value
13 real(wp), parameter :: sgm_eps = 1.e-16_wp !< Segmentation tolerance
14 real(wp), parameter :: chem_tolerance = 1.e-16_wp !< Speed of Sound Tolerance in Chemistry
15 real(wp), parameter :: small_alf = 1.e-11_wp !< Small alf tolerance
16 real(wp), parameter :: pi = 3.141592653589793_wp !< Pi
17 real(wp), parameter :: verysmall = 1.e-12_wp !< Very small number
18 !> Temperature window the immersed-boundary reacting-surface state is kept inside. It is the range the NASA polynomials behind
19 !! the thermodynamic evaluations are fitted over -- 200 K is the T_low of every species in the mechanisms shipped with the
20 !! reacting-surface example -- so it is where those fits mean anything. Shared by the surface Newton solve, which searches
21 !! inside it, the ghost reconstruction, which will not extrapolate out of it, and the case checker, which rejects a prescribed
22 !! wall temperature outside it.
23 real(wp), parameter :: t_surface_min = 200._wp
24 real(wp), parameter :: t_surface_max = 5000._wp
25 !> Radius cutoff to avoid division by zero for 3D spherical harmonic patch (geometry 14)
26 real(wp), parameter :: small_radius = 1.e-32_wp
27 integer, parameter :: num_stcls_min = 5 !< Minimum # of stencils
28 integer, parameter :: path_len = 400 !< Maximum path length
29 integer, parameter :: name_len = 50 !< Maximum name length
30 integer, parameter :: dflt_int = -100 !< Default integer value
31 integer, parameter :: fourier_rings = 5 !< Fourier filter ring limit
32 integer, parameter :: num_fluids_max = 10 !< Maximum number of fluids in the simulation
33 integer, parameter :: num_probes_max = 64 !< Maximum number of flow probes in the simulation
34 integer, parameter :: num_patches_max = 10 !< Maximum number of IC patches
35 integer, parameter :: num_ib_airfoils_max = 5 !< Maximum number of ib_airfoil instances
36 integer, parameter :: num_stl_models_max = 10
37 !> Maximum number of immersed boundary patches (legacy, not used for patch_ib sizing)
38 !> Fixed capacity of patch_ib (namelist patches + local particle bed subset after reduction)
39 integer, parameter :: num_local_ibs_max = 30000 !< Maximum number of immersed boundary patches (patch_ib)
40 integer, parameter :: num_ib_patches_max_namelist = 810000
41 integer, parameter :: num_particle_clouds_max = 10 !< Maximum number of particle bed patch specifications
42 integer, parameter :: num_bc_patches_max = 10 !< Maximum number of boundary condition patches
43 integer, parameter :: max_2d_fourier_modes = 10 !< Max Fourier mode index for 2D modal patch (geometry 13)
44 integer, parameter :: max_sph_harm_degree = 5 !< Max degree L for 3D spherical harmonic patch (geometry 14)
45 integer, parameter :: pathlen_max = 400 !< Maximum path length for STL/OBJ model files
46 integer, parameter :: nnode = 4 !< Number of QBMM nodes
47 integer, parameter :: dflt_num_igr_iters = 2 !< number of iterations for IGR elliptic solve
48 integer, parameter :: dflt_num_igr_warm_start_iters = 50 !< default number of iterations for IGR elliptic solve
49 real(wp), parameter :: dflt_alf_factor = 10._wp !< scaling factor for IGR alpha
50 integer, parameter :: gp_layers = 3 !< Number of ghost point layers for IBM
51 !> color function gradient magnitude at which to apply the surface tension fluxes
52 real(wp), parameter :: capillary_cutoff = 1.e-6
53 !> Spatial support width of acoustic source, used in s_source_spatial
54 real(wp), parameter :: acoustic_spatial_support_width = 2.5_wp
55 real(wp), parameter :: dflt_vcfl_dt = 100._wp !< value of vcfl_dt when viscosity is off for computing adaptive timestep size
56 !> The constant to scale the spectral level at the lower frequency bound
57 real(wp), parameter :: broadband_spectral_level_constant = 20._wp
58 !> The spectral level constant to correct the magnitude at each frequency to ensure the source is overall broadband
59 real(wp), parameter :: broadband_spectral_level_growth_rate = 10._wp
60 ! Interface compression (THINC)
61 real(wp), parameter :: dflt_ic_eps = 1e-4_wp !< Ensure compression is only applied to surface cells in THINC
62 real(wp), parameter :: dflt_ic_beta = 1.6_wp !< Sharpness parameter's default value used in THINC
63 real(wp), parameter :: moncon_cutoff = 1e-8_wp !< Monotonicity constraint's limiter to prevent extremas in THINC
64 real(wp), parameter :: mthinc_align_tol = 1.e-8_wp !< Grid aligned snap tolerance for MTHINC normals
65 ! Chemistry
66 real(wp), parameter :: dflt_t_guess = 1200._wp !< Default guess for temperature (when a previous value is not available)
67
68 ! IBM+STL interpolation constants
69 integer, parameter :: num_ray = 20 !< Default number of rays traced per cell
70 real(wp), parameter :: ray_tracing_threshold = 0.9_wp !< Threshold above which the cell is marked as the model patch
71 real(wp), parameter :: threshold_vector_zero = 1.e-10_wp !< Threshold to treat the component of a vector to be zero
72 real(wp), parameter :: threshold_edge_zero = 1.e-10_wp !< Threshold to treat two edges to be overlapped
73 real(wp), parameter :: initial_distance_buffer = 1.e12_wp !< Initialized levelset distance for the shortest path pair algorithm
74 ! Lagrange bubbles constants
75 integer, parameter :: mapcells = 3 !< Number of cells around the bubble where the smoothening function will have effect
76 real(wp), parameter :: r_uni = 8314._wp !< Universal gas constant - J/kmol/K
77 integer, parameter :: lag_io_vars = 21 !< Number of variables per particle for MPI_IO
78
79 ! Strang Splitting constants
80 real(wp), parameter :: dflt_adap_dt_tol = 1.e-4_wp !< Default tolerance for adaptive step size
81 integer, parameter :: dflt_adap_dt_max_iters = 100 !< Default max iteration for adaptive step size
82 ! Constants of the algorithm described by Heirer, E. Hairer, S. P.Norsett, G. Wanner, Solving Ordinary Differential Equations I,
83 ! Chapter II.4 to choose the initial time step size for the adaptive time stepping routine
84 real(wp), parameter :: threshold_first_guess = 1.e-5_wp !< Threshold for initial step size estimate
85 real(wp), parameter :: threshold_second_guess = 1.e-15_wp !< Threshold for refined step size estimate
86 real(wp), parameter :: scale_first_guess = 1.e-3_wp !< Scale factor for initial step size
87 real(wp), parameter :: scale_guess = 1.e-2_wp !< Scale factor for step size adjustment
88 real(wp), parameter :: small_guess = 1.e-6_wp !< Minimum initial step size
89
90 ! Relativity
91 !> Max Newton-Raphson iterations for relativistic primitive recovery
92 integer, parameter :: relativity_cons_to_prim_max_iter = 100
93
94 ! Linear congruential pseudo-random number generator parameters
95 integer, parameter :: modulus = 2**30 - 1 !< PRNG modulus
96 integer, parameter :: multiplier = 1664525 !< PRNG multiplier
97 integer, parameter :: increment = 1013904223 !< PRNG increment
98 integer, parameter :: amplifier = 3**13 !< PRNG amplifier for mixing
99 real(wp), parameter :: decimal_trim = 1.e5_wp !< PRNG decimal truncation factor
100
101 ! System constants
102 integer, parameter :: case_file_error_code = 22 !< Exit code for case file validation errors
103
104 ! Boundary condition enumeration Abbreviations CHAR - Characteristic NR - Non-reflecting SUB - subsonic SUP - supersonic FF -
105 ! Force-free CP - Constant pressure
106 integer, parameter :: bc_periodic = -1
107 integer, parameter :: bc_reflective = -2
108 integer, parameter :: bc_ghost_extrap = -3
109 integer, parameter :: bc_riemann_extrap = -4
110 integer, parameter :: bc_char_slip_wall = -5
111 integer, parameter :: bc_char_nr_sub_buffer = -6
112 integer, parameter :: bc_char_nr_sub_inflow = -7
113 integer, parameter :: bc_char_nr_sub_outflow = -8
114 integer, parameter :: bc_char_ff_sub_outflow = -9
115 integer, parameter :: bc_char_cp_sub_outflow = -10
116 integer, parameter :: bc_char_sup_inflow = -11
117 integer, parameter :: bc_char_sup_outflow = -12
118 integer, parameter :: bc_null = -13
119 integer, parameter :: bc_axis = -14
120 integer, parameter :: bc_slip_wall = -15
121 integer, parameter :: bc_no_slip_wall = -16
122 integer, parameter :: bc_dirichlet = -17
123
124 !> Equation of state per fluid (eos_stiffened_gas, eos_ideal_gas, eos_mie_gruneisen, eos_jwl, eos_vinet) is generated from
125 !! EOS_FAMILIES in toolchain/mfc/params/eos_families.py; see generated_constants.fpp below.
126 integer, parameter :: eos_rk4_steps = 8 !< fixed-step RK4 along a phasic isentrope or a reference temperature
127 integer, parameter :: ode_isentrope = 1, ode_reference_temperature = 2 !< the two ODEs s_rk4 integrates
128
129 ! Synthetic turbulence array size limits
130 integer, parameter :: num_synth_shells_max = 50 !< Max energy shells for synthetic turbulence
131 integer, parameter :: num_turb_sources_max = 10 !< Max Gaussian forcing zones for synthetic turbulence
132
133 ! Named values for enumerated case parameters (e.g. riemann_solver_hllc).
134 ! AUTO-GENERATED from "names" in toolchain/mfc/params/definitions.py.
135# 1 "/home/runner/work/MFC/MFC/build/include/post_process/generated_constants.fpp" 1
136! AUTO-GENERATED - do not edit directly. Regenerate: cmake reconfigure
137!
138integer, parameter :: avg_state_roe = 1
139integer, parameter :: avg_state_arithmetic = 2
140integer, parameter :: bubble_model_particle = 0
141integer, parameter :: bubble_model_gilmore = 1
142integer, parameter :: bubble_model_keller_miksis = 2
143integer, parameter :: bubble_model_rayleigh_plesset = 3
144integer, parameter :: eos_stiffened_gas = 1
145integer, parameter :: eos_ideal_gas = 2
146integer, parameter :: eos_mie_gruneisen = 3
147integer, parameter :: eos_jwl = 4
148integer, parameter :: eos_vinet = 5
149integer, parameter :: format_silo = 1
150integer, parameter :: format_binary = 2
151integer, parameter :: int_comp_off = 0
152integer, parameter :: int_comp_thinc = 1
153integer, parameter :: int_comp_mthinc = 2
154integer, parameter :: model_eqns_gamma_law = 1
155integer, parameter :: model_eqns_5eq = 2
156integer, parameter :: model_eqns_6eq = 3
157integer, parameter :: muscl_lim_unlimited = 0
158integer, parameter :: muscl_lim_minmod = 1
159integer, parameter :: muscl_lim_mc = 2
160integer, parameter :: muscl_lim_van_albada = 3
161integer, parameter :: muscl_lim_van_leer = 4
162integer, parameter :: muscl_lim_superbee = 5
163integer, parameter :: muscl_order_first_order = 1
164integer, parameter :: muscl_order_second_order = 2
165integer, parameter :: precision_single = 1
166integer, parameter :: precision_double = 2
167integer, parameter :: recon_type_weno = 1
168integer, parameter :: recon_type_muscl = 2
169integer, parameter :: riemann_solver_hll = 1
170integer, parameter :: riemann_solver_hllc = 2
171integer, parameter :: riemann_solver_hlld = 4
172integer, parameter :: riemann_solver_lax_friedrichs = 5
173integer, parameter :: time_stepper_rk1 = 1
174integer, parameter :: time_stepper_rk2 = 2
175integer, parameter :: time_stepper_rk3 = 3
176integer, parameter :: wave_speeds_direct = 1
177integer, parameter :: wave_speeds_pressure = 2
178# 135 "/home/runner/work/MFC/MFC/src/common/m_constants.fpp" 2
179end module m_constants
Compile-time constant parameters: default values, tolerances, and physical constants.
integer, parameter num_ib_airfoils_max
Maximum number of ib_airfoil instances.
integer, parameter lag_io_vars
Number of variables per particle for MPI_IO.
integer, parameter model_eqns_5eq
integer, parameter bc_null
integer, parameter muscl_lim_van_albada
integer, parameter precision_double
real(wp), parameter small_radius
Radius cutoff to avoid division by zero for 3D spherical harmonic patch (geometry 14).
integer, parameter num_local_ibs_max
Maximum number of immersed boundary patches (legacy, not used for patch_ib sizing) Fixed capacity of ...
integer, parameter int_comp_mthinc
integer, parameter bc_char_sup_outflow
integer, parameter avg_state_roe
real(wp), parameter dflt_ic_beta
Sharpness parameter's default value used in THINC.
integer, parameter name_len
Maximum name length.
integer, parameter amplifier
PRNG amplifier for mixing.
integer, parameter num_patches_max
Maximum number of IC patches.
real(wp), parameter ray_tracing_threshold
Threshold above which the cell is marked as the model patch.
integer, parameter wave_speeds_direct
real(wp), parameter dflt_ic_eps
Ensure compression is only applied to surface cells in THINC.
integer, parameter muscl_lim_van_leer
integer, parameter format_silo
integer, parameter num_ib_patches_max_namelist
integer, parameter bc_ghost_extrap
real(wp), parameter dflt_t_guess
Default guess for temperature (when a previous value is not available).
integer, parameter dflt_int
Default integer value.
integer, parameter num_stcls_min
Minimum # of stencils.
integer, parameter bc_no_slip_wall
integer, parameter muscl_lim_mc
integer, parameter time_stepper_rk2
integer, parameter num_particle_clouds_max
Maximum number of particle bed patch specifications.
integer, parameter num_turb_sources_max
Max Gaussian forcing zones for synthetic turbulence.
integer, parameter riemann_solver_hll
integer, parameter relativity_cons_to_prim_max_iter
Max Newton-Raphson iterations for relativistic primitive recovery.
integer, parameter bc_char_nr_sub_inflow
integer, parameter gp_layers
Number of ghost point layers for IBM.
integer, parameter bubble_model_particle
integer, parameter eos_mie_gruneisen
integer, parameter eos_rk4_steps
Equation of state per fluid (eos_stiffened_gas, eos_ideal_gas, eos_mie_gruneisen, eos_jwl,...
integer, parameter riemann_solver_hlld
real(wp), parameter sgm_eps
Segmentation tolerance.
real(wp), parameter t_surface_min
Temperature window the immersed-boundary reacting-surface state is kept inside. It is the range the N...
real(wp), parameter dflt_real
Default real value.
integer, parameter recon_type_muscl
integer, parameter bc_dirichlet
integer, parameter muscl_order_second_order
integer, parameter bc_axis
integer, parameter bubble_model_gilmore
real(wp), parameter dflt_alf_factor
scaling factor for IGR alpha
integer, parameter eos_vinet
integer, parameter time_stepper_rk1
real(wp), parameter decimal_trim
PRNG decimal truncation factor.
integer, parameter max_2d_fourier_modes
Max Fourier mode index for 2D modal patch (geometry 13).
real(wp), parameter initial_distance_buffer
Initialized levelset distance for the shortest path pair algorithm.
integer, parameter format_binary
integer, parameter bc_reflective
integer, parameter path_len
Maximum path length.
real(wp), parameter scale_first_guess
Scale factor for initial step size.
real(wp), parameter dflt_adap_dt_tol
Default tolerance for adaptive step size.
integer, parameter int_comp_off
integer, parameter bc_char_sup_inflow
real(wp), parameter broadband_spectral_level_growth_rate
The spectral level constant to correct the magnitude at each frequency to ensure the source is overal...
integer, parameter pathlen_max
Maximum path length for STL/OBJ model files.
integer, parameter case_file_error_code
Exit code for case file validation errors.
integer, parameter time_stepper_rk3
real(wp), parameter r_uni
Universal gas constant - J/kmol/K.
integer, parameter riemann_solver_hllc
integer, parameter muscl_order_first_order
integer, parameter wave_speeds_pressure
character, parameter dflt_char
Default string value.
integer, parameter eos_ideal_gas
real(wp), parameter t_surface_max
integer, parameter num_bc_patches_max
Maximum number of boundary condition patches.
real(wp), parameter threshold_edge_zero
Threshold to treat two edges to be overlapped.
real(wp), parameter acoustic_spatial_support_width
Spatial support width of acoustic source, used in s_source_spatial.
integer, parameter max_sph_harm_degree
Max degree L for 3D spherical harmonic patch (geometry 14).
integer, parameter muscl_lim_unlimited
real(wp), parameter mthinc_align_tol
Grid aligned snap tolerance for MTHINC normals.
integer, parameter num_fluids_max
Maximum number of fluids in the simulation.
integer, parameter ode_isentrope
integer, parameter num_synth_shells_max
Max energy shells for synthetic turbulence.
real(wp), parameter threshold_second_guess
Threshold for refined step size estimate.
integer, parameter bc_riemann_extrap
integer, parameter dflt_num_igr_iters
number of iterations for IGR elliptic solve
integer, parameter nnode
Number of QBMM nodes.
integer, parameter bc_char_cp_sub_outflow
integer, parameter precision_single
real(wp), parameter broadband_spectral_level_constant
The constant to scale the spectral level at the lower frequency bound.
integer, parameter riemann_solver_lax_friedrichs
integer, parameter eos_stiffened_gas
integer, parameter dflt_adap_dt_max_iters
Default max iteration for adaptive step size.
integer, parameter multiplier
PRNG multiplier.
integer, parameter increment
PRNG increment.
integer, parameter modulus
PRNG modulus.
real(wp), parameter pi
Pi.
real(wp), parameter threshold_vector_zero
Threshold to treat the component of a vector to be zero.
integer, parameter bc_char_nr_sub_outflow
integer, parameter ode_reference_temperature
the two ODEs s_rk4 integrates
integer, parameter bc_char_ff_sub_outflow
integer, parameter bc_slip_wall
real(wp), parameter small_guess
Minimum initial step size.
integer, parameter bc_char_nr_sub_buffer
integer, parameter recon_type_weno
integer, parameter bubble_model_rayleigh_plesset
real(wp), parameter capillary_cutoff
color function gradient magnitude at which to apply the surface tension fluxes
integer, parameter fourier_rings
Fourier filter ring limit.
real(wp), parameter threshold_first_guess
Threshold for initial step size estimate.
integer, parameter muscl_lim_superbee
real(wp), parameter small_alf
Small alf tolerance.
integer, parameter bubble_model_keller_miksis
integer, parameter bc_char_slip_wall
integer, parameter dflt_num_igr_warm_start_iters
default number of iterations for IGR elliptic solve
integer, parameter num_ray
Default number of rays traced per cell.
real(wp), parameter dflt_vcfl_dt
value of vcfl_dt when viscosity is off for computing adaptive timestep size
real(wp), parameter verysmall
Very small number.
integer, parameter int_comp_thinc
integer, parameter num_probes_max
Maximum number of flow probes in the simulation.
integer, parameter mapcells
Number of cells around the bubble where the smoothening function will have effect.
real(wp), parameter scale_guess
Scale factor for step size adjustment.
integer, parameter avg_state_arithmetic
integer, parameter model_eqns_6eq
real(wp), parameter chem_tolerance
Speed of Sound Tolerance in Chemistry.
integer, parameter muscl_lim_minmod
integer, parameter bc_periodic
integer, parameter eos_jwl
integer, parameter num_stl_models_max
integer, parameter model_eqns_gamma_law
real(wp), parameter moncon_cutoff
Monotonicity constraint's limiter to prevent extremas in THINC.
Working-precision kind selection (half/single/double) and corresponding MPI datatype parameters.
integer, parameter wp
Change to single_precision if needed.