MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_bubbles_EE.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
2!>
3!! @file
4!! @brief Contains module @ref m_bubbles_ee "m_bubbles_EE"
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# 76 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
233
234# 91 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
235
236# 102 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
237
238# 115 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239
240# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
241
242# 154 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
243
244# 165 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245
246# 176 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
247
248# 187 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
249
250# 198 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251
252# 208 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
253
254# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
255
256# 220 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257
258# 226 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259
260# 232 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
261
262# 234 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 235 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
264! New line at end of file is required for FYPP
265# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
266
267# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
268
269! Caution:
270! This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI rank.
271! That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0.
272! For an example see misc/nvidia_uvm/bind.sh.
273# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
274
275# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
276
277# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
278
279# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
280
281# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
282
283# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
284
285# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
286
287# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
288! New line at end of file is required for FYPP
289# 6 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp" 2
290
291!> @brief Computes ensemble-averaged (Euler--Euler) bubble source terms for radius, velocity, pressure, and mass transfer
293
294 use m_derived_types !< definitions of the derived types
295
296 use m_global_parameters !< definitions of the global parameters
297
298 use m_mpi_proxy !< message passing interface (mpi) module proxy
299
300 use m_variables_conversion !< state variables type conversion procedures
301
302 use m_bubbles !< general bubble dynamics procedures
303
304 implicit none
305
306 real(wp), allocatable, dimension(:, :, :) :: bub_adv_src
307 real(wp), allocatable, dimension(:, :, :, :) :: bub_r_src, bub_v_src, bub_p_src, bub_m_src
308
309# 24 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
310#if defined(MFC_OpenACC)
311# 24 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
312!$acc declare create(bub_adv_src, bub_r_src, bub_v_src, bub_p_src, bub_m_src)
313# 24 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
314#elif defined(MFC_OpenMP)
315# 24 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
316!$omp declare target (bub_adv_src, bub_r_src, bub_v_src, bub_p_src, bub_m_src)
317# 24 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
318#endif
319
320 type(scalar_field) :: divu !< matrix for div(u)
321
322# 27 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
323#if defined(MFC_OpenACC)
324# 27 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
325!$acc declare create(divu)
326# 27 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
327#elif defined(MFC_OpenMP)
328# 27 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
329!$omp declare target (divu)
330# 27 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
331#endif
332
333 integer, allocatable, dimension(:) :: rs, vs, ms, ps
334
335# 30 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
336#if defined(MFC_OpenACC)
337# 30 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
338!$acc declare create(rs, vs, ms, ps)
339# 30 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
340#elif defined(MFC_OpenMP)
341# 30 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
342!$omp declare target (rs, vs, ms, ps)
343# 30 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
344#endif
345
346contains
347
348 !> @brief Allocates and initializes arrays for the Euler-Euler bubble model.
350
351 integer :: l
352
353#ifdef MFC_DEBUG
354# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
355 block
356# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
357 use iso_fortran_env, only: output_unit
358# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
359
360# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
361 print *, 'm_bubbles_EE.fpp:39: ', '@:ALLOCATE(rs(1:nb))'
362# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
363
364# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
365 call flush (output_unit)
366# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
367 end block
368# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
369#endif
370# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
371 allocate (rs(1:nb))
372# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
373
374# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
375
376# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
377#if defined(MFC_OpenACC)
378# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
379!$acc enter data create(rs)
380# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
381#elif defined(MFC_OpenMP)
382# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
383!$omp target enter data map(always,alloc:rs)
384# 39 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
385#endif
386#ifdef MFC_DEBUG
387# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
388 block
389# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
390 use iso_fortran_env, only: output_unit
391# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
392
393# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
394 print *, 'm_bubbles_EE.fpp:40: ', '@:ALLOCATE(vs(1:nb))'
395# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
396
397# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
398 call flush (output_unit)
399# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
400 end block
401# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
402#endif
403# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
404 allocate (vs(1:nb))
405# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
406
407# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
408
409# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
410#if defined(MFC_OpenACC)
411# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
412!$acc enter data create(vs)
413# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
414#elif defined(MFC_OpenMP)
415# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
416!$omp target enter data map(always,alloc:vs)
417# 40 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
418#endif
419#ifdef MFC_DEBUG
420# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
421 block
422# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
423 use iso_fortran_env, only: output_unit
424# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
425
426# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
427 print *, 'm_bubbles_EE.fpp:41: ', '@:ALLOCATE(ps(1:nb))'
428# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
429
430# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
431 call flush (output_unit)
432# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
433 end block
434# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
435#endif
436# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
437 allocate (ps(1:nb))
438# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
439
440# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
441
442# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
443#if defined(MFC_OpenACC)
444# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
445!$acc enter data create(ps)
446# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
447#elif defined(MFC_OpenMP)
448# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
449!$omp target enter data map(always,alloc:ps)
450# 41 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
451#endif
452#ifdef MFC_DEBUG
453# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
454 block
455# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
456 use iso_fortran_env, only: output_unit
457# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
458
459# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
460 print *, 'm_bubbles_EE.fpp:42: ', '@:ALLOCATE(ms(1:nb))'
461# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
462
463# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
464 call flush (output_unit)
465# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
466 end block
467# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
468#endif
469# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
470 allocate (ms(1:nb))
471# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
472
473# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
474
475# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
476#if defined(MFC_OpenACC)
477# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
478!$acc enter data create(ms)
479# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
480#elif defined(MFC_OpenMP)
481# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
482!$omp target enter data map(always,alloc:ms)
483# 42 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
484#endif
485
486 do l = 1, nb
487 rs(l) = bub_idx%rs(l)
488 vs(l) = bub_idx%vs(l)
489 if (.not. polytropic) then
490 ps(l) = bub_idx%ps(l)
491 ms(l) = bub_idx%ms(l)
492 else
493 ps(l) = rs(l)
494 ms(l) = rs(l)
495 end if
496 end do
497
498
499# 56 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
500#if defined(MFC_OpenACC)
501# 56 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
502!$acc update device(rs, vs)
503# 56 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
504#elif defined(MFC_OpenMP)
505# 56 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
506!$omp target update to(rs, vs)
507# 56 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
508#endif
509
510# 57 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
511#if defined(MFC_OpenACC)
512# 57 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
513!$acc update device(ps, ms)
514# 57 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
515#elif defined(MFC_OpenMP)
516# 57 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
517!$omp target update to(ps, ms)
518# 57 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
519#endif
520
521#ifdef MFC_DEBUG
522# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
523 block
524# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
525 use iso_fortran_env, only: output_unit
526# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
527
528# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
529 print *, 'm_bubbles_EE.fpp:59: ', '@:ALLOCATE(divu%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))'
530# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
531
532# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
533 call flush (output_unit)
534# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
535 end block
536# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
537#endif
538# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
539 allocate (divu%sf(idwbuff(1)%beg:idwbuff(1)%end, idwbuff(2)%beg:idwbuff(2)%end, idwbuff(3)%beg:idwbuff(3)%end))
540# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
541
542# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
543
544# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
545#if defined(MFC_OpenACC)
546# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
547!$acc enter data create(divu%sf)
548# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
549#elif defined(MFC_OpenMP)
550# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
551!$omp target enter data map(always,alloc:divu%sf)
552# 59 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
553#endif
554#ifdef _CRAYFTN
555# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
556 block
557# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
558
559# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
560#ifdef MFC_DEBUG
561# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
562 block
563# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
564 use iso_fortran_env, only: output_unit
565# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
566
567# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
568 print *, 'm_bubbles_EE.fpp:60: ', '@:ACC_SETUP_SFs(divu)'
569# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
570
571# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
572 call flush (output_unit)
573# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
574 end block
575# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
576#endif
577# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
578
579# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
580
581# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
582#if defined(MFC_OpenACC)
583# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
584!$acc enter data copyin(divu)
585# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
586#elif defined(MFC_OpenMP)
587# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
588!$omp target enter data map(to:divu)
589# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
590#endif
591# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
592 if (associated(divu%sf)) then
593# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
594
595# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
596#if defined(MFC_OpenACC)
597# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
598!$acc enter data copyin(divu%sf)
599# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
600#elif defined(MFC_OpenMP)
601# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
602!$omp target enter data map(to:divu%sf)
603# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
604#endif
605# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
606 end if
607# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
608 end block
609# 60 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
610#endif
611
612#ifdef MFC_DEBUG
613# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
614 block
615# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
616 use iso_fortran_env, only: output_unit
617# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
618
619# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
620 print *, 'm_bubbles_EE.fpp:62: ', '@:ALLOCATE(bub_adv_src(0:m, 0:n, 0:p))'
621# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
622
623# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
624 call flush (output_unit)
625# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
626 end block
627# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
628#endif
629# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
630 allocate (bub_adv_src(0:m, 0:n, 0:p))
631# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
632
633# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
634
635# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
636#if defined(MFC_OpenACC)
637# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
638!$acc enter data create(bub_adv_src)
639# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
640#elif defined(MFC_OpenMP)
641# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
642!$omp target enter data map(always,alloc:bub_adv_src)
643# 62 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
644#endif
645#ifdef MFC_DEBUG
646# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
647 block
648# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
649 use iso_fortran_env, only: output_unit
650# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
651
652# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
653 print *, 'm_bubbles_EE.fpp:63: ', '@:ALLOCATE(bub_r_src(0:m, 0:n, 0:p, 1:nb))'
654# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
655
656# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
657 call flush (output_unit)
658# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
659 end block
660# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
661#endif
662# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
663 allocate (bub_r_src(0:m, 0:n, 0:p, 1:nb))
664# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
665
666# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
667
668# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
669#if defined(MFC_OpenACC)
670# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
671!$acc enter data create(bub_r_src)
672# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
673#elif defined(MFC_OpenMP)
674# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
675!$omp target enter data map(always,alloc:bub_r_src)
676# 63 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
677#endif
678#ifdef MFC_DEBUG
679# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
680 block
681# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
682 use iso_fortran_env, only: output_unit
683# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
684
685# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
686 print *, 'm_bubbles_EE.fpp:64: ', '@:ALLOCATE(bub_v_src(0:m, 0:n, 0:p, 1:nb))'
687# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
688
689# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
690 call flush (output_unit)
691# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
692 end block
693# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
694#endif
695# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
696 allocate (bub_v_src(0:m, 0:n, 0:p, 1:nb))
697# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
698
699# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
700
701# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
702#if defined(MFC_OpenACC)
703# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
704!$acc enter data create(bub_v_src)
705# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
706#elif defined(MFC_OpenMP)
707# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
708!$omp target enter data map(always,alloc:bub_v_src)
709# 64 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
710#endif
711#ifdef MFC_DEBUG
712# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
713 block
714# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
715 use iso_fortran_env, only: output_unit
716# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
717
718# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
719 print *, 'm_bubbles_EE.fpp:65: ', '@:ALLOCATE(bub_p_src(0:m, 0:n, 0:p, 1:nb))'
720# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
721
722# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
723 call flush (output_unit)
724# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
725 end block
726# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
727#endif
728# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
729 allocate (bub_p_src(0:m, 0:n, 0:p, 1:nb))
730# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
731
732# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
733
734# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
735#if defined(MFC_OpenACC)
736# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
737!$acc enter data create(bub_p_src)
738# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
739#elif defined(MFC_OpenMP)
740# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
741!$omp target enter data map(always,alloc:bub_p_src)
742# 65 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
743#endif
744#ifdef MFC_DEBUG
745# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
746 block
747# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
748 use iso_fortran_env, only: output_unit
749# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
750
751# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
752 print *, 'm_bubbles_EE.fpp:66: ', '@:ALLOCATE(bub_m_src(0:m, 0:n, 0:p, 1:nb))'
753# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
754
755# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
756 call flush (output_unit)
757# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
758 end block
759# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
760#endif
761# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
762 allocate (bub_m_src(0:m, 0:n, 0:p, 1:nb))
763# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
764
765# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
766
767# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
768#if defined(MFC_OpenACC)
769# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
770!$acc enter data create(bub_m_src)
771# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
772#elif defined(MFC_OpenMP)
773# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
774!$omp target enter data map(always,alloc:bub_m_src)
775# 66 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
776#endif
777
778 if (adap_dt .and. f_is_default(adap_dt_tol)) adap_dt_tol = dflt_adap_dt_tol
779
780 end subroutine s_initialize_bubbles_ee_module
781
782 !> @brief Computes the bubble volume fraction alpha from the bubble number density.
783 !! @param q_cons_vf is the conservative variable
784 subroutine s_comp_alpha_from_n(q_cons_vf)
785 type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf
786 real(wp) :: nR3bar
787 integer(wp) :: i, j, k, l
788
789
790# 79 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
791
792# 79 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
793#if defined(MFC_OpenACC)
794# 79 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
795!$acc parallel loop collapse(3) gang vector default(present) private(i, j, k, l, nR3bar)
796# 79 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
797#elif defined(MFC_OpenMP)
798# 79 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
799
800# 79 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
801
802# 79 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
803
804# 79 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
805!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, j, k, l, nR3bar)
806# 79 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
807#endif
808# 79 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
809
810 do l = 0, p
811 do k = 0, n
812 do j = 0, m
813 nr3bar = 0._wp
814
815# 84 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
816#if defined(MFC_OpenACC)
817# 84 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
818!$acc loop seq
819# 84 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
820#elif defined(MFC_OpenMP)
821# 84 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
822
823# 84 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
824#endif
825 do i = 1, nb
826 nr3bar = nr3bar + weight(i)*(q_cons_vf(rs(i))%sf(j, k, l))**3._wp
827 end do
828 q_cons_vf(alf_idx)%sf(j, k, l) = (4._wp*pi*nr3bar)/(3._wp*q_cons_vf(n_idx)%sf(j, k, l)**2._wp)
829 end do
830 end do
831 end do
832
833# 92 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
834
835# 92 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
836#if defined(MFC_OpenACC)
837# 92 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
838!$acc end parallel loop
839# 92 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
840#elif defined(MFC_OpenMP)
841# 92 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
842
843# 92 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
844
845# 92 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
846!$omp end target teams loop
847# 92 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
848#endif
849# 92 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
850
851
852 end subroutine s_comp_alpha_from_n
853
854 !> Compute the right-hand side for Euler-Euler bubble transport
855 !! @param idir Direction index
856 !! @param q_prim_vf Primitive variables
857 subroutine s_compute_bubbles_ee_rhs(idir, q_prim_vf, divu_in)
858
859 integer, intent(in) :: idir
860 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf
861 type(scalar_field), intent(inout) :: divu_in !< matrix for div(u)
862
863 integer :: j, k, l
864
865 if (idir == 1) then
866
867 if (.not. qbmm) then
868
869# 110 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
870
871# 110 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
872#if defined(MFC_OpenACC)
873# 110 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
874!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
875# 110 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
876#elif defined(MFC_OpenMP)
877# 110 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
878
879# 110 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
880
881# 110 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
882
883# 110 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
884!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l)
885# 110 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
886#endif
887# 110 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
888
889 do l = 0, p
890 do k = 0, n
891 do j = 0, m
892 divu_in%sf(j, k, l) = 0._wp
893 divu_in%sf(j, k, l) = &
894 5.e-1_wp/dx(j)*(q_prim_vf(contxe + idir)%sf(j + 1, k, l) - &
895 q_prim_vf(contxe + idir)%sf(j - 1, k, l))
896
897 end do
898 end do
899 end do
900
901# 122 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
902
903# 122 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
904#if defined(MFC_OpenACC)
905# 122 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
906!$acc end parallel loop
907# 122 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
908#elif defined(MFC_OpenMP)
909# 122 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
910
911# 122 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
912
913# 122 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
914!$omp end target teams loop
915# 122 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
916#endif
917# 122 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
918
919 end if
920
921 elseif (idir == 2) then
922
923
924# 127 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
925
926# 127 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
927#if defined(MFC_OpenACC)
928# 127 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
929!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
930# 127 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
931#elif defined(MFC_OpenMP)
932# 127 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
933
934# 127 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
935
936# 127 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
937
938# 127 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
939!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l)
940# 127 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
941#endif
942# 127 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
943
944 do l = 0, p
945 do k = 0, n
946 do j = 0, m
947 divu_in%sf(j, k, l) = divu_in%sf(j, k, l) + &
948 5.e-1_wp/dy(k)*(q_prim_vf(contxe + idir)%sf(j, k + 1, l) - &
949 q_prim_vf(contxe + idir)%sf(j, k - 1, l))
950
951 end do
952 end do
953 end do
954
955# 138 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
956
957# 138 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
958#if defined(MFC_OpenACC)
959# 138 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
960!$acc end parallel loop
961# 138 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
962#elif defined(MFC_OpenMP)
963# 138 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
964
965# 138 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
966
967# 138 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
968!$omp end target teams loop
969# 138 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
970#endif
971# 138 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
972
973
974 elseif (idir == 3) then
975
976
977# 142 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
978
979# 142 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
980#if defined(MFC_OpenACC)
981# 142 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
982!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l)
983# 142 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
984#elif defined(MFC_OpenMP)
985# 142 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
986
987# 142 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
988
989# 142 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
990
991# 142 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
992!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l)
993# 142 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
994#endif
995# 142 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
996
997 do l = 0, p
998 do k = 0, n
999 do j = 0, m
1000 divu_in%sf(j, k, l) = divu_in%sf(j, k, l) + &
1001 5.e-1_wp/dz(l)*(q_prim_vf(contxe + idir)%sf(j, k, l + 1) - &
1002 q_prim_vf(contxe + idir)%sf(j, k, l - 1))
1003
1004 end do
1005 end do
1006 end do
1007
1008# 153 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1009
1010# 153 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1011#if defined(MFC_OpenACC)
1012# 153 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1013!$acc end parallel loop
1014# 153 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1015#elif defined(MFC_OpenMP)
1016# 153 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1017
1018# 153 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1019
1020# 153 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1021!$omp end target teams loop
1022# 153 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1023#endif
1024# 153 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1025
1026
1027 end if
1028
1029 end subroutine s_compute_bubbles_ee_rhs
1030
1031 !> The purpose of this procedure is to compute the source terms
1032 !! that are needed for the bubble modeling
1033 !! @param q_prim_vf Primitive variables
1034 !! @param q_cons_vf Conservative variables
1035 !! @param rhs_vf Right-hand side variables
1036 impure subroutine s_compute_bubble_ee_source(q_cons_vf, q_prim_vf, rhs_vf, divu_in)
1037 type(scalar_field), dimension(sys_size), intent(inout) :: q_cons_vf
1038 type(scalar_field), dimension(sys_size), intent(in) :: q_prim_vf
1039 type(scalar_field), dimension(sys_size), intent(inout) :: rhs_vf
1040 type(scalar_field), intent(in) :: divu_in !< matrix for div(u)
1041
1042 real(wp) :: rddot
1043 real(wp) :: pb_local, mv_local, vflux, pbdot
1044 real(wp) :: n_tait, b_tait
1045# 177 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1046 real(wp), dimension(nb) :: rtmp, vtmp
1047 real(wp), dimension(num_fluids) :: myalpha, myalpha_rho
1048# 180 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1049 real(wp) :: myr, myv, alf, myp, myrho, r2vav, r3
1050 real(wp) :: nbub !< Bubble number density
1051 real(wp) :: my_divu
1052
1053 integer :: i, j, k, l, q, ii !< Loop variables
1054
1055 integer :: adap_dt_stop_max, adap_dt_stop !< Fail-safe exit if max iteration count reached
1056 integer :: dmbub_id !< Dummy variables for unified subgrid bubble subroutines
1057 real(wp) :: dmmass_v, dmmass_n, dmbeta_c, dmbeta_t, dmcson
1058
1059
1060# 190 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1061
1062# 190 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1063#if defined(MFC_OpenACC)
1064# 190 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1065!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, q)
1066# 190 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1067#elif defined(MFC_OpenMP)
1068# 190 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1069
1070# 190 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1071
1072# 190 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1073
1074# 190 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1075!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, q)
1076# 190 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1077#endif
1078# 190 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1079
1080 do l = 0, p
1081 do k = 0, n
1082 do j = 0, m
1083 bub_adv_src(j, k, l) = 0._wp
1084
1085
1086# 196 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1087#if defined(MFC_OpenACC)
1088# 196 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1089!$acc loop seq
1090# 196 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1091#elif defined(MFC_OpenMP)
1092# 196 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1093
1094# 196 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1095#endif
1096 do q = 1, nb
1097 bub_r_src(j, k, l, q) = 0._wp
1098 bub_v_src(j, k, l, q) = 0._wp
1099 bub_p_src(j, k, l, q) = 0._wp
1100 bub_m_src(j, k, l, q) = 0._wp
1101 end do
1102 end do
1103 end do
1104 end do
1105
1106# 206 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1107
1108# 206 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1109#if defined(MFC_OpenACC)
1110# 206 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1111!$acc end parallel loop
1112# 206 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1113#elif defined(MFC_OpenMP)
1114# 206 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1115
1116# 206 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1117
1118# 206 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1119!$omp end target teams loop
1120# 206 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1121#endif
1122# 206 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1123
1124
1125 adap_dt_stop_max = 0
1126
1127# 209 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1128
1129# 209 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1130#if defined(MFC_OpenACC)
1131# 209 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1132!$acc parallel loop collapse(3) gang vector default(present) private(j, k, l, Rtmp, Vtmp, myalpha_rho, myalpha, myR, myV, alf, myP, myRho, R2Vav, R3, nbub, pb_local, mv_local, vflux, pbdot, rddot, n_tait, B_tait, my_divu) reduction(MAX:adap_dt_stop_max) copy(adap_dt_stop_max)
1133# 209 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1134#elif defined(MFC_OpenMP)
1135# 209 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1136
1137# 209 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1138
1139# 209 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1140
1141# 209 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1142!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(j, k, l, Rtmp, Vtmp, myalpha_rho, myalpha, myR, myV, alf, myP, myRho, R2Vav, R3, nbub, pb_local, mv_local, vflux, pbdot, rddot, n_tait, B_tait, my_divu) reduction(MAX:adap_dt_stop_max) map(tofrom:adap_dt_stop_max)
1143# 209 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1144#endif
1145# 209 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1146
1147# 212 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1148 do l = 0, p
1149 do k = 0, n
1150 do j = 0, m
1151
1152 if (adv_n) then
1153 nbub = q_prim_vf(n_idx)%sf(j, k, l)
1154 else
1155
1156# 219 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1157#if defined(MFC_OpenACC)
1158# 219 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1159!$acc loop seq
1160# 219 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1161#elif defined(MFC_OpenMP)
1162# 219 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1163
1164# 219 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1165#endif
1166 do q = 1, nb
1167 rtmp(q) = q_prim_vf(rs(q))%sf(j, k, l)
1168 vtmp(q) = q_prim_vf(vs(q))%sf(j, k, l)
1169 end do
1170
1171 r3 = 0._wp
1172
1173
1174# 227 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1175#if defined(MFC_OpenACC)
1176# 227 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1177!$acc loop seq
1178# 227 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1179#elif defined(MFC_OpenMP)
1180# 227 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1181
1182# 227 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1183#endif
1184 do q = 1, nb
1185 r3 = r3 + weight(q)*rtmp(q)**3._wp
1186 end do
1187
1188 nbub = (3._wp/(4._wp*pi))*q_prim_vf(alf_idx)%sf(j, k, l)/r3
1189 end if
1190
1191 if (.not. adap_dt) then
1192 r2vav = 0._wp
1193
1194
1195# 238 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1196#if defined(MFC_OpenACC)
1197# 238 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1198!$acc loop seq
1199# 238 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1200#elif defined(MFC_OpenMP)
1201# 238 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1202
1203# 238 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1204#endif
1205 do q = 1, nb
1206 r2vav = r2vav + weight(q)*rtmp(q)**2._wp*vtmp(q)
1207 end do
1208
1209 bub_adv_src(j, k, l) = 4._wp*pi*nbub*r2vav
1210 end if
1211
1212
1213# 246 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1214#if defined(MFC_OpenACC)
1215# 246 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1216!$acc loop seq
1217# 246 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1218#elif defined(MFC_OpenMP)
1219# 246 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1220
1221# 246 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1222#endif
1223 do q = 1, nb
1224
1225
1226# 249 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1227#if defined(MFC_OpenACC)
1228# 249 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1229!$acc loop seq
1230# 249 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1231#elif defined(MFC_OpenMP)
1232# 249 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1233
1234# 249 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1235#endif
1236 do ii = 1, num_fluids
1237 myalpha_rho(ii) = q_cons_vf(ii)%sf(j, k, l)
1238 myalpha(ii) = q_cons_vf(advxb + ii - 1)%sf(j, k, l)
1239 end do
1240
1241 if (num_fluids == 1) then
1242 myrho = myalpha_rho(1)
1243 n_tait = gammas(1)
1244 b_tait = pi_infs(1)/pi_fac
1245 else
1246 myrho = 0._wp
1247 n_tait = 0._wp
1248 b_tait = 0._wp
1249
1250
1251# 264 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1252#if defined(MFC_OpenACC)
1253# 264 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1254!$acc loop seq
1255# 264 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1256#elif defined(MFC_OpenMP)
1257# 264 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1258
1259# 264 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1260#endif
1261 do ii = 1, num_fluids
1262 myrho = myrho + myalpha_rho(ii)
1263 n_tait = n_tait + myalpha(ii)*gammas(ii)
1264 b_tait = b_tait + myalpha(ii)*pi_infs(ii)/pi_fac
1265 end do
1266 end if
1267
1268 n_tait = 1._wp/n_tait + 1._wp !make this the usual little 'gamma'
1269 b_tait = b_tait*(n_tait - 1)/n_tait ! make this the usual pi_inf
1270
1271 myp = q_prim_vf(e_idx)%sf(j, k, l)
1272 alf = q_prim_vf(alf_idx)%sf(j, k, l)
1273 myr = q_prim_vf(rs(q))%sf(j, k, l)
1274 myv = q_prim_vf(vs(q))%sf(j, k, l)
1275
1276 if (alf < small_alf) then
1277 bub_adv_src(j, k, l) = 0._wp
1278 bub_r_src(j, k, l, q) = 0._wp
1279 bub_v_src(j, k, l, q) = 0._wp
1280 if (.not. polytropic) then
1281 bub_p_src(j, k, l, q) = 0._wp
1282 bub_m_src(j, k, l, q) = 0._wp
1283 end if
1284 else
1285 if (.not. polytropic) then
1286 pb_local = q_prim_vf(ps(q))%sf(j, k, l)
1287 mv_local = q_prim_vf(ms(q))%sf(j, k, l)
1288 call s_bwproperty(pb_local, q, chi_vw, k_mw, rho_mw)
1289 call s_vflux(myr, myv, pb_local, mv_local, q, vflux)
1290 pbdot = f_bpres_dot(vflux, myr, myv, pb_local, mv_local, q)
1291 bub_p_src(j, k, l, q) = nbub*pbdot
1292 bub_m_src(j, k, l, q) = nbub*vflux*4._wp*pi*(myr**2._wp)
1293 else
1294 pb_local = 0._wp; mv_local = 0._wp; vflux = 0._wp; pbdot = 0._wp
1295 end if
1296
1297 ! Adaptive time stepping
1298 if (adap_dt) then
1299 adap_dt_stop = 0
1300
1301 call s_advance_step(myrho, myp, myr, myv, r0(q), &
1302 pb_local, pbdot, alf, n_tait, b_tait, &
1303 bub_adv_src(j, k, l), divu_in%sf(j, k, l), &
1304 dmbub_id, dmmass_v, dmmass_n, dmbeta_c, &
1305 dmbeta_t, dmcson, adap_dt_stop)
1306
1307 q_cons_vf(rs(q))%sf(j, k, l) = nbub*myr
1308 q_cons_vf(vs(q))%sf(j, k, l) = nbub*myv
1309
1310 adap_dt_stop_max = max(adap_dt_stop_max, adap_dt_stop)
1311
1312 else
1313 rddot = f_rddot(myrho, myp, myr, myv, r0(q), &
1314 pb_local, pbdot, alf, n_tait, b_tait, &
1315 bub_adv_src(j, k, l), divu_in%sf(j, k, l), &
1316 dmcson)
1317 bub_v_src(j, k, l, q) = nbub*rddot
1318 bub_r_src(j, k, l, q) = q_cons_vf(vs(q))%sf(j, k, l)
1319 end if
1320 end if
1321 end do
1322 end do
1323 end do
1324 end do
1325
1326# 329 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1327
1328# 329 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1329#if defined(MFC_OpenACC)
1330# 329 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1331!$acc end parallel loop
1332# 329 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1333#elif defined(MFC_OpenMP)
1334# 329 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1335
1336# 329 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1337
1338# 329 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1339!$omp end target teams loop
1340# 329 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1341#endif
1342# 329 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1343
1344
1345 if (adap_dt .and. adap_dt_stop_max > 0) call s_mpi_abort("Adaptive time stepping failed to converge.")
1346
1347 if (.not. adap_dt) then
1348
1349# 334 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1350
1351# 334 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1352#if defined(MFC_OpenACC)
1353# 334 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1354!$acc parallel loop collapse(3) gang vector default(present) private(i, k, l, q)
1355# 334 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1356#elif defined(MFC_OpenMP)
1357# 334 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1358
1359# 334 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1360
1361# 334 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1362
1363# 334 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1364!$omp target teams loop defaultmap(firstprivate:scalar) bind(teams,parallel) collapse(3) defaultmap(tofrom:aggregate) defaultmap(tofrom:allocatable) defaultmap(tofrom:pointer) private(i, k, l, q)
1365# 334 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1366#endif
1367# 334 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1368
1369 do l = 0, p
1370 do q = 0, n
1371 do i = 0, m
1372 rhs_vf(alf_idx)%sf(i, q, l) = rhs_vf(alf_idx)%sf(i, q, l) + bub_adv_src(i, q, l)
1373 if (num_fluids > 1) rhs_vf(advxb)%sf(i, q, l) = &
1374 rhs_vf(advxb)%sf(i, q, l) - bub_adv_src(i, q, l)
1375
1376# 341 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1377#if defined(MFC_OpenACC)
1378# 341 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1379!$acc loop seq
1380# 341 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1381#elif defined(MFC_OpenMP)
1382# 341 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1383
1384# 341 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1385#endif
1386 do k = 1, nb
1387 rhs_vf(rs(k))%sf(i, q, l) = rhs_vf(rs(k))%sf(i, q, l) + bub_r_src(i, q, l, k)
1388 rhs_vf(vs(k))%sf(i, q, l) = rhs_vf(vs(k))%sf(i, q, l) + bub_v_src(i, q, l, k)
1389 if (polytropic .neqv. .true.) then
1390 rhs_vf(ps(k))%sf(i, q, l) = rhs_vf(ps(k))%sf(i, q, l) + bub_p_src(i, q, l, k)
1391 rhs_vf(ms(k))%sf(i, q, l) = rhs_vf(ms(k))%sf(i, q, l) + bub_m_src(i, q, l, k)
1392 end if
1393 end do
1394 end do
1395 end do
1396 end do
1397
1398# 353 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1399
1400# 353 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1401#if defined(MFC_OpenACC)
1402# 353 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1403!$acc end parallel loop
1404# 353 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1405#elif defined(MFC_OpenMP)
1406# 353 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1407
1408# 353 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1409
1410# 353 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1411!$omp end target teams loop
1412# 353 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1413#endif
1414# 353 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1415
1416 end if
1417 end subroutine s_compute_bubble_ee_source
1418
1419end module m_bubbles_ee
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
integer, intent(in) k
integer, intent(in) j
integer, intent(in) l
Computes ensemble-averaged (Euler–Euler) bubble source terms for radius, velocity,...
real(wp), dimension(:, :, :, :), allocatable bub_v_src
subroutine s_comp_alpha_from_n(q_cons_vf)
Computes the bubble volume fraction alpha from the bubble number density.
integer, dimension(:), allocatable ms
real(wp), dimension(:, :, :, :), allocatable bub_p_src
subroutine s_compute_bubbles_ee_rhs(idir, q_prim_vf, divu_in)
Compute the right-hand side for Euler-Euler bubble transport.
integer, dimension(:), allocatable vs
real(wp), dimension(:, :, :), allocatable bub_adv_src
impure subroutine s_compute_bubble_ee_source(q_cons_vf, q_prim_vf, rhs_vf, divu_in)
The purpose of this procedure is to compute the source terms that are needed for the bubble modeling.
real(wp), dimension(:, :, :, :), allocatable bub_r_src
real(wp), dimension(:, :, :, :), allocatable bub_m_src
impure subroutine s_initialize_bubbles_ee_module
Allocates and initializes arrays for the Euler-Euler bubble model.
integer, dimension(:), allocatable ps
type(scalar_field) divu
matrix for div(u)
integer, dimension(:), allocatable rs
Shared bubble-dynamics procedures (radial acceleration, wall pressure, sound speed) for ensemble- and...
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...
integer nb
Number of eq. bubble sizes.
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
Derived type annexing a scalar field (SF).