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