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# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
32# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
34# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
36# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
51# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
52# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
53# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
61# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
63# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
65# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
67# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
69# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
71# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
73# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
75# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
77# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
79# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
81# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
83# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
85# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
87# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
89# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
93# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
95# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
97# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
99# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
105# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
107# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
109# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
111# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 126 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 156 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 197 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 211 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 236 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 247 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 249 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136# 260 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138# 310 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
140# 320 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
142# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
144# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
146# 356 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
148# 366 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
150# 373 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
152# 379 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
154# 385 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
156# 391 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
158# 397 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
160# 403 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
162# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
163# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
164# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
165# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
167# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
169# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
171# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
173# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
175# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
177# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
179# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
181# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
183# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
185# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
187# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
189# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
191# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
193# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
195# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
197# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
199# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
201# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
203# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
205# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
207# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
209# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
211# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
213# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
215# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
217# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
235# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
237# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
239# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
241# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
243# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
245# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
247# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
249# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
251# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
253# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
256# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
268# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
271# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
274# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
277# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
280# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
289# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
292# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
295# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
298# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
304# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
307# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
310# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
312# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
313# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
315# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
317# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
322# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
325# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
328# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
331# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
334# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
337# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
339# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
341# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
343# 7 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp" 2
358 character(len=4),
dimension(5),
parameter ::
dt_limiter_names = (/
'ICFL',
'VCFL',
'CCFL',
'TCFL',
'COLL'/)
366# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
368# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
370# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
372# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
374# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
376# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
378# 28 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
380 integer,
intent(in) ::
k,
l
381 real(wp) :: fltr_dtheta
386 fltr_dtheta = 2._wp*pi*
y_cb(0)/3._wp
387 else if (
k <= fourier_rings)
then
388 nfq = min(floor(2._wp*real(
k, wp)*pi), (p + 1)/2 + 1)
389 fltr_dtheta = 2._wp*pi*
y_cb(
k - 1)/real(nfq, wp)
400 subroutine s_compute_cell_state(q_prim_vf, pres, rho, gamma, pi_inf, Re, alpha, alpha_rho, vel, vel_sum, qv, j, k, l)
403# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
405# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
407# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
409# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
411# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
413# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
415# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
417# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
419# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
421# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
423# 51 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
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"
438 type(
scalar_field),
intent(in),
dimension(sys_size) :: q_prim_vf
439# 58 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
440 real(wp),
intent(inout),
dimension(num_fluids) :: alpha, alpha_rho
441 real(wp),
intent(inout),
dimension(num_vels) :: vel
442# 61 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
443 real(wp),
intent(inout) :: rho, gamma, pi_inf, vel_sum, pres
444 real(wp),
intent(out) :: qv
445 integer,
intent(in) ::
j,
k,
l
446 real(wp),
dimension(2),
intent(inout) :: re
447# 68 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
448 real(wp),
dimension(num_fluids) :: gs
449# 70 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
455 if (hypoelasticity)
then
463# 82 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
464#if defined(MFC_OpenACC)
465# 82 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
467# 82 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
468#elif defined(MFC_OpenMP)
469# 82 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
471# 82 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
474 vel(i) = q_prim_vf(eqn_idx%cont%end + i)%sf(
j,
k,
l)/rho
478# 87 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
479#if defined(MFC_OpenACC)
480# 87 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
482# 87 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
483#elif defined(MFC_OpenMP)
484# 87 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
486# 87 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
489 vel(i) = q_prim_vf(eqn_idx%cont%end + i)%sf(
j,
k,
l)
495# 94 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
496#if defined(MFC_OpenACC)
497# 94 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
499# 94 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
500#elif defined(MFC_OpenMP)
501# 94 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
503# 94 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
506 vel_sum = vel_sum + vel(i)**2._wp
510 pres = (q_prim_vf(eqn_idx%E)%sf(
j,
k,
l) - pi_inf - qv - 5.e-1_wp*rho*vel_sum)/gamma
512 pres = q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)
518 subroutine s_compute_stability_from_dt(vel, c, rho, Re_l, alpha, alpha_rho, j, k, l, icfl, vcfl, Rc, ccfl, tcfl)
521# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
523# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
525# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
527# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
529# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
531# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
533# 110 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
535 real(wp),
intent(in),
dimension(num_vels) :: vel
536 real(wp),
intent(in) :: c, rho
537 real(wp),
intent(inout) :: icfl
538 real(wp),
intent(inout) :: vcfl, rc, ccfl, tcfl
539 real(wp),
dimension(2),
intent(in) :: re_l
540# 119 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
541 real(wp),
dimension(num_fluids),
intent(in) :: alpha, alpha_rho
542# 121 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
543 integer,
intent(in) ::
j,
k,
l
544 real(wp) :: fltr_dtheta
545 real(wp) :: k_mix, rho_cv
554# 133 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
557 icfl = dt/min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c), fltr_dtheta/(abs(vel(3)) + c))
559 icfl = dt/min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c),
dz(
l)/(abs(vel(3)) + c))
561# 140 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
563 icfl = dt/min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c))
565 icfl = (dt/
dx(
j))*(abs(vel(1)) + c)
571# 150 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
574 vcfl = maxval(dt/re_l/rho)/min(
dx(
j),
dy(
k), fltr_dtheta)**2._wp
575 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)
577 vcfl = maxval(dt/re_l/rho)/min(
dx(
j),
dy(
k),
dz(
l))**2._wp
578 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)
580# 159 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
582 vcfl = maxval(dt/re_l/rho)/min(
dx(
j),
dy(
k))**2._wp
583 rc = min(
dx(
j)*(abs(vel(1)) + c),
dy(
k)*(abs(vel(2)) + c))/maxval(1._wp/re_l)
585 vcfl = maxval(dt/re_l/rho)/
dx(
j)**2._wp
586 rc =
dx(
j)*(abs(vel(1)) + c)/maxval(1._wp/re_l)
591 if (surface_tension)
then
593# 172 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
596 ccfl = dt*sqrt(2._wp*pi*sigma/(rho*min(
dx(
j),
dy(
k), fltr_dtheta)**3._wp))
598 ccfl = dt*sqrt(2._wp*pi*sigma/(rho*min(
dx(
j),
dy(
k),
dz(
l))**3._wp))
600# 179 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
602 ccfl = dt*sqrt(2._wp*pi*sigma/(rho*min(
dx(
j),
dy(
k))**3._wp))
604 ccfl = dt*sqrt(2._wp*pi*sigma/(rho*
dx(
j)**3._wp))
609 if (heat_conduction)
then
613# 190 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
614#if defined(MFC_OpenACC)
615# 190 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
617# 190 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
618#elif defined(MFC_OpenMP)
619# 190 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
621# 190 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
624 k_mix = k_mix + alpha(i)*fluid_k_therm(i)
625 rho_cv = rho_cv + alpha_rho(i)*cvs(i)
631 tcfl = dt*k_mix/(rho_cv*min(
dx(
j),
dy(
k), fltr_dtheta)**2._wp)
633 tcfl = dt*k_mix/(rho_cv*min(
dx(
j),
dy(
k),
dz(
l))**2._wp)
636 tcfl = dt*k_mix/(rho_cv*min(
dx(
j),
dy(
k))**2._wp)
638 tcfl = dt*k_mix/(rho_cv*
dx(
j)**2._wp)
649# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
651# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
653# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
655# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
657# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
659# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
661# 216 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
663 real(wp),
dimension(num_vels),
intent(in) :: vel
664 real(wp),
intent(in) :: c, rho
665 real(wp),
dimension(4),
intent(out) :: max_dt
666 real(wp),
dimension(2),
intent(in) :: re_l
667# 224 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
668 real(wp),
dimension(num_fluids),
intent(in) :: alpha, alpha_rho
669# 226 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
670 integer,
intent(in) ::
j,
k,
l
671 real(wp) :: vcfl_dt, ccfl_dt, tcfl_dt
672 real(wp) :: fltr_dtheta
673 real(wp) :: k_mix, rho_cv
676 max_dt(2) = huge(1._wp)
677 max_dt(3) = huge(1._wp)
678 max_dt(4) = huge(1._wp)
686# 243 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
689 max_dt(1) = cfl_target*min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c), fltr_dtheta/(abs(vel(3)) + c))
691 max_dt(1) = cfl_target*min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c),
dz(
l)/(abs(vel(3)) + c))
693# 250 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
695 max_dt(1) = cfl_target*min(
dx(
j)/(abs(vel(1)) + c),
dy(
k)/(abs(vel(2)) + c))
697 max_dt(1) = cfl_target*(
dx(
j)/(abs(vel(1)) + c))
705 vcfl_dt = cfl_target*(min(
dx(
j),
dy(
k), fltr_dtheta)**2._wp)/maxval(1/(rho*re_l))
707 vcfl_dt = cfl_target*(min(
dx(
j),
dy(
k),
dz(
l))**2._wp)/maxval(1/(rho*re_l))
710 vcfl_dt = cfl_target*(min(
dx(
j),
dy(
k))**2._wp)/maxval((1/re_l)/rho)
712 vcfl_dt = cfl_target*(
dx(
j)**2._wp)/maxval(1/(rho*re_l))
718 if (surface_tension)
then
720# 277 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
723 ccfl_dt = cfl_target*sqrt(rho*min(
dx(
j),
dy(
k), fltr_dtheta)**3._wp/(2._wp*pi*sigma))
725 ccfl_dt = cfl_target*sqrt(rho*min(
dx(
j),
dy(
k),
dz(
l))**3._wp/(2._wp*pi*sigma))
727# 284 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
729 ccfl_dt = cfl_target*sqrt(rho*min(
dx(
j),
dy(
k))**3._wp/(2._wp*pi*sigma))
731 ccfl_dt = cfl_target*sqrt(rho*
dx(
j)**3._wp/(2._wp*pi*sigma))
737 if (heat_conduction)
then
741# 296 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
742#if defined(MFC_OpenACC)
743# 296 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
745# 296 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
746#elif defined(MFC_OpenMP)
747# 296 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
749# 296 "/home/runner/work/MFC/MFC/src/simulation/m_sim_helpers.fpp"
752 k_mix = k_mix + alpha(i)*fluid_k_therm(i)
753 rho_cv = rho_cv + alpha_rho(i)*cvs(i)
759 tcfl_dt = cfl_target*(min(
dx(
j),
dy(
k), fltr_dtheta)**2._wp)*rho_cv/max(k_mix, sgm_eps)
761 tcfl_dt = cfl_target*(min(
dx(
j),
dy(
k),
dz(
l))**2._wp)*rho_cv/max(k_mix, sgm_eps)
764 tcfl_dt = cfl_target*(min(
dx(
j),
dy(
k))**2._wp)*rho_cv/max(k_mix, sgm_eps)
766 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).