MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_checker.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
2!>
3!!@file
4!!@brief Contains module m_checker
5
6# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
7# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
8# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
9# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
10# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
11# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
12# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
13# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
14
15# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
16# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
17# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
18
19# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
20
21# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22
23# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24
25# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
26
27# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28
29# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
30
31# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
32! New line at end of file is required for FYPP
33# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
34# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
35# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
36# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41
42# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45
46# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
47
48# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49
50# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51
52# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53
54# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55
56# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57
58# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59! New line at end of file is required for FYPP
60# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
61
62# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
63# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
64# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
65# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
66# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
67
68# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
69
70# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
71
72# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
73
74# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
75
76# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
77
78# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
79
80# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
81
82# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
83
84# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
85
86# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
87
88# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
89
90# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91
92# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
93
94# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
95
96# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
97
98# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
99
100# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101
102# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103
104# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
105
106# 207 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
107
108# 232 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
109
110# 243 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
111
112# 245 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114
115# 283 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116
117# 293 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118
119# 303 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120
121# 312 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122
123# 329 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124
125# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126
127# 346 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128
129# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130
131# 358 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132
133# 364 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134
135# 370 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136
137# 376 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138! New line at end of file is required for FYPP
139# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
140# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
141# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
142# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
143# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
144# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
145# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
146# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
147
148# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
149# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
150# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
151
152# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
153
154# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
155
156# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
157
158# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
159
160# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161
162# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
163
164# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165! New line at end of file is required for FYPP
166# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
167
168# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
169
170# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
171
172# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
173
174# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
175
176# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
177
178# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
179
180# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
181
182# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
183
184# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
185
186# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
187
188# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
189
190# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
191
192# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
193
194# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
195
196# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
197
198# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
199
200# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
201
202# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
203
204# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
205
206# 192 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
207
208# 213 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
209
210# 241 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
211
212# 256 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
213
214# 266 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
215
216# 275 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
217
218# 291 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219
220# 301 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221
222# 308 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223! New line at end of file is required for FYPP
224# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
225
226# 21 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
227
228# 37 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
229
230# 50 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
231
232# 104 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
233
234# 119 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
235
236# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
237
238# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239
240# 171 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
241
242# 182 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
243
244# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245
246# 204 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
247
248# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
249
250# 225 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251
252# 236 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
253
254# 246 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
255
256# 252 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257
258# 258 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259
260# 264 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
261
262# 270 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263
264# 272 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 273 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266! New line at end of file is required for FYPP
267# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
268
269# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
270
271! Caution:
272! This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI rank.
273! That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0.
274! For an example see misc/nvidia_uvm/bind.sh.
275# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
276
277# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
278
279# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
280
281# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
282
283# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
284
285# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
286
287# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
288
289# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
290! New line at end of file is required for FYPP
291# 6 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp" 2
292# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
293! This file exists so that Fypp can be run without generating case.fpp files for
294! each target. This is useful when generating documentation, for example. This
295! should also let MFC be built with CMake directly, without invoking mfc.sh.
296
297! For pre-process.
298# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
299
300! For moving immersed boundaries in simulation
301# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
302# 7 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp" 2
303
304!> @brief Validates simulation input parameters for consistency and supported configurations
306
307 use m_global_parameters !< definitions of the global parameters
308
309 use m_mpi_proxy !< message passing interface (mpi) module proxy
310
311 use m_helper
312
313 use m_helper_basic !< functions to compare floating point numbers
314
315 implicit none
316
317 private; public :: s_check_inputs
318
319contains
320
321 !> Checks compatibility of parameters in the input file.
322 !! Used by the simulation stage
323 impure subroutine s_check_inputs
324
326
327 if (igr) then
329 else
330 if (recon_type == weno_type) then
332 else if (recon_type == muscl_type) then
334 end if
335 end if
336
338
339 end subroutine s_check_inputs
340
341 !> Checks constraints on compiler options
342 impure subroutine s_check_inputs_compilers
343#if !defined(MFC_OpenACC) && !(defined(__PGI) || defined(_CRAYFTN))
344 if (rdma_mpi) then
345# 48 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
346 call s_prohibit_abort("rdma_mpi", "Unsupported value of rdma_mpi for the current compiler")
347# 48 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
348 end if
349#endif
350 end subroutine s_check_inputs_compilers
351
352 !> Checks constraints on WENO scheme parameters
353 impure subroutine s_check_inputs_weno
354 character(len=5) :: numstr !< for int to string conversion
355
356 call s_int_to_str(num_stcls_min*weno_order, numstr)
357 if (m + 1 < num_stcls_min*weno_order) then
358# 57 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
359 call s_prohibit_abort("m + 1 < num_stcls_min*weno_order", "m must be greater than or equal to (num_stcls_min*weno_order - 1), whose value is "//trim(numstr))
360# 57 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
361 end if
362# 59 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
363 if (n + 1 < min(1, n)*num_stcls_min*weno_order) then
364# 59 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
365 call s_prohibit_abort("n + 1 < min(1, n)*num_stcls_min*weno_order", "For 2D simulation, n must be greater than or equal to (num_stcls_min*weno_order - 1), whose value is "//trim(numstr))
366# 59 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
367 end if
368# 61 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
369 if (p + 1 < min(1, p)*num_stcls_min*weno_order) then
370# 61 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
371 call s_prohibit_abort("p + 1 < min(1, p)*num_stcls_min*weno_order", "For 3D simulation, p must be greater than or equal to (num_stcls_min*weno_order - 1), whose value is "//trim(numstr))
372# 61 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
373 end if
374# 63 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
375 end subroutine s_check_inputs_weno
376
377 !> @brief Validates that the grid resolution is sufficient for the MUSCL reconstruction order.
378 impure subroutine s_check_inputs_muscl
379 character(len=5) :: numstr !< for int to string conversion
380
381 call s_int_to_str(num_stcls_min*muscl_order, numstr)
382 if (m + 1 < num_stcls_min*muscl_order) then
383# 70 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
384 call s_prohibit_abort("m + 1 < num_stcls_min*muscl_order", "m must be greater than or equal to (num_stcls_min*muscl_order - 1), whose value is "//trim(numstr))
385# 70 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
386 end if
387# 72 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
388 if (n + 1 < min(1, n)*num_stcls_min*muscl_order) then
389# 72 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
390 call s_prohibit_abort("n + 1 < min(1, n)*num_stcls_min*muscl_order", "For 2D simulation, n must be greater than or equal to (num_stcls_min*muscl_order - 1), whose value is "//trim(numstr))
391# 72 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
392 end if
393# 74 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
394 if (p + 1 < min(1, p)*num_stcls_min*muscl_order) then
395# 74 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
396 call s_prohibit_abort("p + 1 < min(1, p)*num_stcls_min*muscl_order", "For 3D simulation, p must be greater than or equal to (num_stcls_min*muscl_order - 1), whose value is "//trim(numstr))
397# 74 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
398 end if
399# 76 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
400 end subroutine s_check_inputs_muscl
401
402 !> Checks constraints on time stepping parameters
404 if (.not. cfl_dt) then
405 if (dt <= 0) then
406# 81 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
407 call s_prohibit_abort("dt <= 0", "")
408# 81 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
409 end if
410 end if
411 end subroutine s_check_inputs_time_stepping
412
414#ifdef __NVCOMPILER_GPU_UNIFIED_MEM
416# 87 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
417 call s_prohibit_abort(.or."nv_uvm_igr_temps_on_gpu > 3 nv_uvm_igr_temps_on_gpu < 0", "nv_uvm_igr_temps_on_gpu must be in the range [0, 3]")
418# 87 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
419 end if
420# 89 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
421 if (nv_uvm_igr_temps_on_gpu == 3 .and. igr_iter_solver == 2) then
422# 89 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
423 call s_prohibit_abort(.and."nv_uvm_igr_temps_on_gpu == 3 igr_iter_solver == 2", "nv_uvm_igr_temps_on_gpu must be in the range [0, 2] for igr_iter_solver == 2")
424# 89 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
425 end if
426# 91 "/home/runner/work/MFC/MFC/src/simulation/m_checker.fpp"
427#endif
428 end subroutine s_check_inputs_nvidia_uvm
429
430end module m_checker
Validates simulation input parameters for consistency and supported configurations.
impure subroutine, public s_check_inputs
Checks compatibility of parameters in the input file. Used by the simulation stage.
impure subroutine s_check_inputs_time_stepping
Checks constraints on time stepping parameters.
impure subroutine s_check_inputs_weno
Checks constraints on WENO scheme parameters.
impure subroutine s_check_inputs_muscl
Validates that the grid resolution is sufficient for the MUSCL reconstruction order.
impure subroutine s_check_inputs_compilers
Checks constraints on compiler options.
impure subroutine s_check_inputs_nvidia_uvm
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
logical igr
Use information geometric regularization.
integer recon_type
Reconstruction Type.
integer muscl_order
Order of the MUSCL reconstruction.
integer weno_order
Order of the WENO reconstruction.
real(wp) dt
Size of the time-step.
integer igr_iter_solver
IGR elliptic solver.
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
elemental subroutine, public s_int_to_str(i, res)
Converts an integer to its trimmed string representation.
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.