1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.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_pressure_relaxation.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_pressure_relaxation.fpp" 2
391 integer :: i,
j,
k,
l
393# 38 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
394 real(wp),
dimension(num_fluids) :: alpha_rho, alpha
395# 40 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
396 real(wp) :: rho, gamma, pi_inf, qv_mix
397 integer :: hit_cap, hit_cap_sum, unusable, unusable_sum
398 real(wp) :: resid, resid_max
406# 49 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
408# 49 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
409#if defined(MFC_OpenACC)
410# 49 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
412# 49 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
414# 49 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
415#elif defined(MFC_OpenMP)
416# 49 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
418# 49 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
420# 49 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
422# 49 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
424# 49 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
426# 49 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
428# 51 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
440 hit_cap_sum = hit_cap_sum + hit_cap
441 unusable_sum = unusable_sum + unusable
442 resid_max = max(resid_max, resid)
445# 66 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
446#if defined(MFC_OpenACC)
447# 66 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
449# 66 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
450#elif defined(MFC_OpenMP)
451# 66 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
453# 66 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
455# 67 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
468# 78 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
469#if defined(MFC_OpenACC)
470# 78 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
472# 78 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
473#elif defined(MFC_OpenMP)
474# 78 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
476# 78 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
478# 78 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
480# 79 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
486 if (unusable_sum > 0)
then
487 call s_mpi_abort(
'Pressure relaxation produced a non-physical phasic density. Exiting.')
497 print
'(A,I0,A,ES10.3,A)',
' Pressure relaxation reached its iteration cap in ',
n_hit_cap, &
498 &
' cell updates; worst residual left behind ',
worst_residual,
' against a 1e-10 tolerance.'
507# 104 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
509# 104 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
511# 104 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
513# 104 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
515# 104 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
517# 104 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
519# 104 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
521# 105 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
524 integer,
intent(in) ::
j,
k,
l
529# 111 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
530#if defined(MFC_OpenACC)
531# 111 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
533# 111 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
534#elif defined(MFC_OpenMP)
535# 111 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
537# 111 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
539# 112 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
541 if (
q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(
j,
k,
l) > (1._wp - sgm_eps))
then
552# 123 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
554# 123 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
556# 123 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
558# 123 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
560# 123 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
562# 123 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
564# 123 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
566# 124 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
568 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
569 integer,
intent(in) :: j, k, l
570 real(wp) :: sum_alpha
575# 131 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
576#if defined(MFC_OpenACC)
577# 131 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
579# 131 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
580#elif defined(MFC_OpenMP)
581# 131 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
583# 131 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
585# 132 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
587 if ((q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l) < 0._wp) .or. (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, &
589 q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l) = 0._wp
590 q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) = 0._wp
591 q_cons_vf(i + eqn_idx%int_en%beg - 1)%sf(j, k, l) = 0._wp
593 if (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) > 1._wp) q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) = 1._wp
594 sum_alpha = sum_alpha + q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l)
598# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
599#if defined(MFC_OpenACC)
600# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
602# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
603#elif defined(MFC_OpenMP)
604# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
606# 143 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
608# 144 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
610 q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) = q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l)/sum_alpha
619# 153 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
621# 153 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
623# 153 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
625# 153 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
627# 153 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
629# 153 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
631# 153 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
633# 154 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
635 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
636 integer,
intent(in) :: j, k, l
637 integer,
intent(out) :: hit_cap, unusable
638 real(wp),
intent(out) :: resid
639 real(wp) :: pres_relax, f_pres, df_pres
640# 163 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
641 real(wp),
dimension(num_fluids) :: pres_K_init, rho_K_init, rho_K_s
642# 165 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
643 real(wp) :: gamma_K, pi_inf_K, dpi_K, dgamma_K, c2_K, alpha_i, alpha_rho_i, rho_i, p_i, rho_s_i
644 integer,
parameter :: MAX_ITER = 50
646 real(wp),
parameter :: TOLERANCE = 1.e-10_wp
653# 174 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
654#if defined(MFC_OpenACC)
655# 174 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
657# 174 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
658#elif defined(MFC_OpenMP)
659# 174 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
661# 174 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
663# 175 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
665 if (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) > sgm_eps)
then
669 alpha_rho_i = q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)
670 alpha_i = q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l)
672 rho_k_init(i) = rho_i
673 pres_k_init(i) = ((q_cons_vf(i + eqn_idx%int_en%beg - 1)%sf(j, k, l) - q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, &
674 & k, l)*qvs(i))/q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) - pi_inf_k)/gamma_k
676 if (pres_k_init(i) <= -(1._wp - 1.e-8_wp)*isentrope_b(i) + 1.e-8_wp) pres_k_init(i) = -(1._wp - 1.e-8_wp) &
677 & *isentrope_b(i) + 1.e-8_wp
680 pres_k_init(i) = 0._wp
682 pres_relax = pres_relax + q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l)*pres_k_init(i)
689# 199 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
690#if defined(MFC_OpenACC)
691# 199 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
693# 199 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
694#elif defined(MFC_OpenMP)
695# 199 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
697# 199 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
699# 200 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
700 do iter = 0, max_iter - 1
701 if (abs(f_pres) > tolerance)
then
702 pres_relax = pres_relax - f_pres/df_pres
707 if (pres_relax <= -(1._wp - 1.e-8_wp)*isentrope_b(i) + 1.e-8_wp) pres_relax = -(1._wp - 1.e-8_wp) &
708 & *isentrope_b(i) + 1.e-8_wp
716# 215 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
717#if defined(MFC_OpenACC)
718# 215 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
720# 215 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
721#elif defined(MFC_OpenMP)
722# 215 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
724# 215 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
726# 216 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
728 if (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) > sgm_eps .and. any_state_dependent_eos)
then
729 rho_i = rho_k_init(i)
733 f_pres = f_pres + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)/rho_k_s(i)
734 df_pres = df_pres - q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)/(rho_k_s(i)**2*c2_k)
735 else if (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) > sgm_eps)
then
737 rho_k_s(i) = q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)/max(q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, &
739 & sgm_eps)*((pres_relax + isentrope_b(i))/(pres_k_init(i) + isentrope_b(i)))**(1._wp/isentrope_n(i))
740 f_pres = f_pres + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)/rho_k_s(i)
741 df_pres = df_pres - q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
742 & l)/(isentrope_n(i)*rho_k_s(i)*(pres_relax + isentrope_b(i)))
752 if (.not. (abs(f_pres) <= tolerance))
then
757 if (f_pres /= f_pres) resid = huge(1._wp)
768# 256 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
769#if defined(MFC_OpenACC)
770# 256 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
772# 256 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
773#elif defined(MFC_OpenMP)
774# 256 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
776# 256 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
778# 257 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
780 if (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) > sgm_eps .and. .not. (rho_k_s(i) > 0._wp)) usable = .false.
785# 262 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
786#if defined(MFC_OpenACC)
787# 262 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
789# 262 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
790#elif defined(MFC_OpenMP)
791# 262 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
793# 262 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
795# 263 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
797 if (q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l) > sgm_eps) q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, &
798 & l) = q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)/rho_k_s(i)
810# 276 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
812# 276 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
814# 276 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
816# 276 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
818# 276 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
820# 276 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
822# 276 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
824# 277 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
826 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
827 integer,
intent(in) :: j, k, l
828 real(wp),
intent(in) :: rho, gamma, pi_inf, qv_mix
829 real(wp) :: dyn_pres, pres_relax, alpha_i, alpha_rho_i, e_i
834# 285 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
835#if defined(MFC_OpenACC)
836# 285 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
838# 285 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
839#elif defined(MFC_OpenMP)
840# 285 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
842# 285 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
844# 286 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
845 do i = eqn_idx%mom%beg, eqn_idx%mom%end
846 dyn_pres = dyn_pres + 5.e-1_wp*q_cons_vf(i)%sf(j, k, l)*q_cons_vf(i)%sf(j, k, l)/max(rho, sgm_eps)
849 pres_relax =
f_pressure(q_cons_vf(eqn_idx%E)%sf(j, k, l) - dyn_pres, gamma, pi_inf, qv_mix)
852# 292 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
853#if defined(MFC_OpenACC)
854# 292 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
856# 292 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
857#elif defined(MFC_OpenMP)
858# 292 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
860# 292 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
862# 293 "/home/runner/work/MFC/MFC/src/simulation/m_pressure_relaxation.fpp"
864 alpha_i = q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(j, k, l)
865 alpha_rho_i = q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)
867 q_cons_vf(i + eqn_idx%int_en%beg - 1)%sf(j, k, l) = e_i
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Equations of state in Gamma/Pi form, rho e = Gamma(rho) p + Pi(rho).
subroutine, public s_phase_density_on_isentrope(i, rho_from, p_from, p_to, rho_to, c2_to)
Density of phase i on the isentrope through (rho_from, p_from) at p_to, and c^2 there: Newton on the ...
subroutine, public s_phase_coefficients(alpha_rho, alpha, i, rho, gamma, pi_inf, dpi, dgamma)
Coefficients of phase i at its own density alpha_rho/alpha: the per-cell dispatch when some fluid's E...
logical function, public f_is_state_dependent(i)
Whether the EOS of fluid i is a family whose coefficients vary with density.
subroutine, public s_phase_internal_energy(pres, alpha, alpha_rho, i, e_phase)
Internal energy per unit volume of phase i at pressure pres: alpha (Gamma p + Pi) + alpha_rho qv,...
real(wp) function, public f_pressure(e_int, gamma, pi_inf, qv)
Pressure of a stiffened gas from its internal energy density - the inverse of s_compute_energy....
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
integer proc_rank
Rank of the local processor.
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.
Pressure relaxation for the six-equation multi-component model via Newton–Raphson equilibration and v...
subroutine s_equilibrate_pressure(q_cons_vf, j, k, l, hit_cap, resid, unusable)
Main pressure equilibration using Newton-Raphson.
subroutine, public s_pressure_relaxation_procedure(q_cons_vf)
The main pressure relaxation procedure.
logical function s_needs_pressure_relaxation(q_cons_vf, j, k, l)
Check if pressure relaxation is needed for this cell.
subroutine s_correct_internal_energies(q_cons_vf, j, k, l, rho, gamma, pi_inf, qv_mix)
Correct internal energies using equilibrated pressure.
integer n_hit_cap
Cell updates in which the Newton below stopped on its iteration cap rather than on the tolerance....
real(wp) worst_residual
Largest |f| left behind when the cap was reached.
impure subroutine, public s_report_pressure_relaxation
One line at the end of a run if the equilibration ever stopped on its iteration cap....
subroutine s_correct_volume_fractions(q_cons_vf, j, k, l)
Correct volume fractions to physical bounds.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
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).