1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
6# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
12# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
15# 12 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
16# 6 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp" 2
17# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
18# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
19# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
20# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
26# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
30# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
34# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
35# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
36# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
38# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
47# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
58# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
59# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
60# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
61# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
63# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
67# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
71# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
74# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
75# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
76# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
78# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
79# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
81# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
83# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
85# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
87# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
89# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
91# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
93# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
95# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
97# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
99# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
105# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
107# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
109# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
111# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 95 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 100 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 105 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 110 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 115 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 120 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 125 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 130 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 135 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 165 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 219 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 233 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145# 258 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147# 269 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149# 271 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
150# 282 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
152# 332 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
154# 342 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
156# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
158# 361 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
160# 378 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
162# 388 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
164# 395 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
166# 401 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
168# 407 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
170# 413 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
172# 419 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
174# 425 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
176# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
177# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
178# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
179# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
181# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
183# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
185# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
186# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
187# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
189# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
190# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
193# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
194# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
195# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
197# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
198# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
200# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
202# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
204# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
206# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
208# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
210# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
212# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
214# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
216# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
218# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
236# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
238# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
240# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
242# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
244# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
246# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
248# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
250# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
252# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
254# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
256# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
258# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
260# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
262# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
264# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
266# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
268# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
270# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
272# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
274# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
277# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
280# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
289# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
292# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
295# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
298# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
304# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
307# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
310# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
313# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
316# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
319# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
322# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
325# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
328# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
331# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
333# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
334# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
336# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
338# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
343# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
346# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
349# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
352# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
355# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
358# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
360# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
362# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
364# 7 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp" 2
379 character(len=4),
dimension(5),
parameter ::
dt_limiter_names = (/
'ICFL',
'VCFL',
'CCFL',
'TCFL',
'COLL'/)
387# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
389# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
391# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
393# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
395# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
397# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
399# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
401# 29 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
402 integer,
intent(in) ::
k,
l
403 real(wp) :: fltr_dtheta
408 fltr_dtheta = 2._wp*pi*
y_cb(0)/3._wp
409 else if (
k <= fourier_rings)
then
410 nfq = min(floor(2._wp*real(
k, wp)*pi), (p + 1)/2 + 1)
411 fltr_dtheta = 2._wp*pi*
y_cb(
k - 1)/real(nfq, wp)
422 subroutine s_compute_cell_state(q_prim_vf, pres, rho, gamma, pi_inf, Re, alpha, alpha_rho, vel, vel_sum, qv, j, k, l)
425# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
427# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
429# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
431# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
433# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
435# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
437# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
439# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
441# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
443# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
445# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
447# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
449# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
451# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
453# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
455# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
457# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
459# 52 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
461 type(
scalar_field),
intent(in),
dimension(sys_size) :: q_prim_vf
462# 58 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
463 real(wp),
intent(inout),
dimension(num_fluids) :: alpha, alpha_rho
464 real(wp),
intent(inout),
dimension(num_vels) :: vel
465# 61 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
466 real(wp),
intent(inout) :: rho, gamma, pi_inf, vel_sum, pres
467 real(wp),
intent(out) :: qv
468 integer,
intent(in) ::
j,
k,
l
469 real(wp),
dimension(2),
intent(inout) :: re
470# 68 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
471 real(wp),
dimension(num_fluids) :: gs
472# 70 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
478 if (hypoelasticity)
then
486# 82 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
487#if defined(MFC_OpenACC)
488# 82 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
490# 82 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
491#elif defined(MFC_OpenMP)
492# 82 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
494# 82 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
496# 83 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
498 vel(i) = q_prim_vf(eqn_idx%cont%end + i)%sf(
j,
k,
l)/rho
502# 87 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
503#if defined(MFC_OpenACC)
504# 87 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
506# 87 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
507#elif defined(MFC_OpenMP)
508# 87 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
510# 87 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
512# 88 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
514 vel(i) = q_prim_vf(eqn_idx%cont%end + i)%sf(
j,
k,
l)
520# 94 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
521#if defined(MFC_OpenACC)
522# 94 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
524# 94 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
525#elif defined(MFC_OpenMP)
526# 94 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
528# 94 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
530# 95 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
532 vel_sum = vel_sum + vel(i)**2._wp
536 pres = (q_prim_vf(eqn_idx%E)%sf(
j,
k,
l) - pi_inf - qv - 5.e-1_wp*rho*vel_sum)/gamma
538 pres = q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)
544 subroutine s_compute_stability_from_dt(vel, c, rho, Re_l, alpha, alpha_rho, j, k, l, icfl, vcfl, Rc, ccfl, tcfl)
547# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
549# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
551# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
553# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
555# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
557# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
559# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
561# 111 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
562 real(wp),
intent(in),
dimension(num_vels) :: vel
563 real(wp),
intent(in) :: c, rho
564 real(wp),
intent(inout) :: icfl
565 real(wp),
intent(inout) :: vcfl, rc, ccfl, tcfl
566 real(wp),
dimension(2),
intent(in) :: re_l
567# 119 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
568 real(wp),
dimension(num_fluids),
intent(in) :: alpha, alpha_rho
569# 121 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
570 integer,
intent(in) ::
j,
k,
l
571 real(wp) :: fltr_dtheta
572 real(wp) :: k_mix, rho_cv
581# 133 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
584 icfl = dt/min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c), fltr_dtheta/(abs(vel(3)) + c))
586 icfl = dt/min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c),
dz(
l)/(abs(vel(3)) + c))
588# 140 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
590 icfl = dt/min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c))
592 icfl = (dt/
dx(
j))*(abs(vel(1)) + c)
598# 150 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
601 vcfl = maxval(dt/re_l/rho)/min(
dx(
j),
dy(
k), fltr_dtheta)**2._wp
602 rc = min(
dx(
j)*(abs(vel(1)) + c),
dy(
k)*(abs(vel(2)) + c), fltr_dtheta*(abs(vel(3)) + c))/maxval(1._wp/re_l)
604 vcfl = maxval(dt/re_l/rho)/min(
dx(
j),
dy(
k),
dz(
l))**2._wp
605 rc = min(
dx(
j)*(abs(vel(1)) + c),
dy(
k)*(abs(vel(2)) + c),
dz(
l)*(abs(vel(3)) + c))/maxval(1._wp/re_l)
607# 159 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
609 vcfl = maxval(dt/re_l/rho)/min(
dx(
j),
dy(
k))**2._wp
610 rc = min(
dx(
j)*(abs(vel(1)) + c),
dy(
k)*(abs(vel(2)) + c))/maxval(1._wp/re_l)
612 vcfl = maxval(dt/re_l/rho)/
dx(
j)**2._wp
613 rc =
dx(
j)*(abs(vel(1)) + c)/maxval(1._wp/re_l)
618 if (surface_tension)
then
620# 172 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
623 ccfl = dt*sqrt(2._wp*pi*sigma/(rho*min(
dx(
j),
dy(
k), fltr_dtheta)**3._wp))
625 ccfl = dt*sqrt(2._wp*pi*sigma/(rho*min(
dx(
j),
dy(
k),
dz(
l))**3._wp))
627# 179 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
629 ccfl = dt*sqrt(2._wp*pi*sigma/(rho*min(
dx(
j),
dy(
k))**3._wp))
631 ccfl = dt*sqrt(2._wp*pi*sigma/(rho*
dx(
j)**3._wp))
636 if (heat_conduction)
then
640# 190 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
641#if defined(MFC_OpenACC)
642# 190 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
644# 190 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
645#elif defined(MFC_OpenMP)
646# 190 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
648# 190 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
650# 191 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
652 k_mix = k_mix + alpha(i)*fluid_k_therm(i)
653 rho_cv = rho_cv + alpha_rho(i)*cvs(i)
659 tcfl = dt*k_mix/(rho_cv*min(
dx(
j),
dy(
k), fltr_dtheta)**2._wp)
661 tcfl = dt*k_mix/(rho_cv*min(
dx(
j),
dy(
k),
dz(
l))**2._wp)
664 tcfl = dt*k_mix/(rho_cv*min(
dx(
j),
dy(
k))**2._wp)
666 tcfl = dt*k_mix/(rho_cv*
dx(
j)**2._wp)
677# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
679# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
681# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
683# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
685# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
687# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
689# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
691# 217 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
692 real(wp),
dimension(num_vels),
intent(in) :: vel
693 real(wp),
intent(in) :: c, rho
694 real(wp),
dimension(4),
intent(out) :: max_dt
695 real(wp),
dimension(2),
intent(in) :: re_l
696# 224 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
697 real(wp),
dimension(num_fluids),
intent(in) :: alpha, alpha_rho
698# 226 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
699 integer,
intent(in) ::
j,
k,
l
700 real(wp) :: vcfl_dt, ccfl_dt, tcfl_dt
701 real(wp) :: fltr_dtheta
702 real(wp) :: k_mix, rho_cv
705 max_dt(2) = huge(1._wp)
706 max_dt(3) = huge(1._wp)
707 max_dt(4) = huge(1._wp)
715# 243 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
718 max_dt(1) = cfl_target*min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c), fltr_dtheta/(abs(vel(3)) + c))
720 max_dt(1) = cfl_target*min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c),
dz(
l)/(abs(vel(3)) + c))
722# 250 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
724 max_dt(1) = cfl_target*min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c))
726 max_dt(1) = cfl_target*(
dx(
j)/(abs(vel(1)) + c))
734 vcfl_dt = cfl_target*(min(
dx(
j),
dy(
k), fltr_dtheta)**2._wp)/maxval(1/(rho*re_l))
736 vcfl_dt = cfl_target*(min(
dx(
j),
dy(
k),
dz(
l))**2._wp)/maxval(1/(rho*re_l))
739 vcfl_dt = cfl_target*(min(
dx(
j),
dy(
k))**2._wp)/maxval((1/re_l)/rho)
741 vcfl_dt = cfl_target*(
dx(
j)**2._wp)/maxval(1/(rho*re_l))
747 if (surface_tension)
then
749# 277 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
752 ccfl_dt = cfl_target*sqrt(rho*min(
dx(
j),
dy(
k), fltr_dtheta)**3._wp/(2._wp*pi*sigma))
754 ccfl_dt = cfl_target*sqrt(rho*min(
dx(
j),
dy(
k),
dz(
l))**3._wp/(2._wp*pi*sigma))
756# 284 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
758 ccfl_dt = cfl_target*sqrt(rho*min(
dx(
j),
dy(
k))**3._wp/(2._wp*pi*sigma))
760 ccfl_dt = cfl_target*sqrt(rho*
dx(
j)**3._wp/(2._wp*pi*sigma))
766 if (heat_conduction)
then
770# 296 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
771#if defined(MFC_OpenACC)
772# 296 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
774# 296 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
775#elif defined(MFC_OpenMP)
776# 296 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
778# 296 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
780# 297 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
782 k_mix = k_mix + alpha(i)*fluid_k_therm(i)
783 rho_cv = rho_cv + alpha_rho(i)*cvs(i)
789 tcfl_dt = cfl_target*(min(
dx(
j),
dy(
k), fltr_dtheta)**2._wp)*rho_cv/max(k_mix, sgm_eps)
791 tcfl_dt = cfl_target*(min(
dx(
j),
dy(
k),
dz(
l))**2._wp)*rho_cv/max(k_mix, sgm_eps)
794 tcfl_dt = cfl_target*(min(
dx(
j),
dy(
k))**2._wp)*rho_cv/max(k_mix, sgm_eps)
796 tcfl_dt = cfl_target*(
dx(
j)**2._wp)*rho_cv/max(k_mix, sgm_eps)
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
real(wp), dimension(:), allocatable, target y_cb
real(wp), dimension(:), allocatable, target dy
real(wp), dimension(:), allocatable, target dz
real(wp), dimension(:), allocatable, target dx
Simulation helper routines for cell state, CFL calculation, and stability checks.
subroutine, public s_compute_stability_from_dt(vel, c, rho, re_l, alpha, alpha_rho, j, k, l, icfl, vcfl, rc, ccfl, tcfl)
Computes stability criterion for a specified dt.
subroutine, public s_compute_cell_state(q_prim_vf, pres, rho, gamma, pi_inf, re, alpha, alpha_rho, vel, vel_sum, qv, j, k, l)
Computes the mixture coefficients, velocity and pressure of one cell.
subroutine, public s_compute_dt_from_cfl(vel, c, max_dt, rho, re_l, alpha, alpha_rho, j, k, l)
Computes the candidate dts for a specified CFL number: max_dt(1) from the inviscid,...
character(len=4), public dt_limiter
Criterion currently limiting the adaptive time step (ICFL, VCFL, CCFL, TCFL, the collision cap,...
character(len=4), dimension(5), parameter, public dt_limiter_names
real(wp) function f_compute_filtered_dtheta(k, l)
Computes the modified dtheta for Fourier filtering in azimuthal direction.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
subroutine, public s_compute_species_fraction(q_vf, k, l, r, alpha_rho_k, alpha_k)
Compute partial densities and volume fractions.
subroutine, public s_convert_species_to_mixture_variables_kernel(rho_k, gamma_k, pi_inf_k, qv_k, alpha_k, alpha_rho_k, re_k, g_k, g)
Host- and device-callable conversion kernel for species and mixture variables.
Derived type annexing a scalar field (SF).