MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_compute_cbc.fpp.f90
Go to the documentation of this file.
1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
2!>
3!! @file
4!! @brief CBC computation module
5# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
6! This file exists so that Fypp can be run without generating case.fpp files for
7! each target. This is useful when generating documentation, for example. This
8! should also let MFC be built with CMake directly, without invoking mfc.sh.
9
10! For pre-process.
11# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
12
13! For moving immersed boundaries in simulation
14# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
15# 5 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp" 2
16# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
17# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
18# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
19# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
20# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24
25# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
26# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28
29# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
30
31# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
32
33# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
34
35# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
36
37# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38
39# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40
41# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42! New line at end of file is required for FYPP
43# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
44# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
45# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
46# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
47# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51
52# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55
56# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57
58# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59
60# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
61
62# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
63
64# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
65
66# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
67
68# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
69! New line at end of file is required for FYPP
70# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
71
72# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
73# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
75# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
77
78# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
79
80# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
81
82# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
83
84# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
85
86# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
87
88# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
89
90# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91
92# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
93
94# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
95
96# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
97
98# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
99
100# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101
102# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103
104# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
105
106# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
107
108# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
109
110# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
111
112# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113
114# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115
116# 207 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117
118# 232 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119
120# 243 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121
122# 245 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124
125# 283 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126
127# 293 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128
129# 303 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130
131# 312 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132
133# 329 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134
135# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136
137# 346 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138
139# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
140
141# 358 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
142
143# 364 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
144
145# 370 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
146
147# 376 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
148! New line at end of file is required for FYPP
149# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
150# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
151# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
152# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
153# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
155# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
157
158# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
159# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161
162# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
163
164# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165
166# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
167
168# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
169
170# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
171
172# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
173
174# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
175! New line at end of file is required for FYPP
176# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
177
178# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
179
180# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
181
182# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
183
184# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
185
186# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
187
188# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
189
190# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
191
192# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
193
194# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
195
196# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
197
198# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
199
200# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
201
202# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
203
204# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
205
206# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
207
208# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
209
210# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
211
212# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
213
214# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
215
216# 192 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
217
218# 213 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219
220# 241 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221
222# 256 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223
224# 266 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225
226# 275 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227
228# 291 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229
230# 301 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231
232# 308 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233! New line at end of file is required for FYPP
234# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
235
236# 21 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
237
238# 37 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239
240# 50 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
241
242# 76 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
243
244# 91 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245
246# 102 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
247
248# 115 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
249
250# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251
252# 154 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
253
254# 165 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
255
256# 176 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257
258# 186 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259
260# 197 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
261
262# 208 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263
264# 218 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265
266# 224 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
267
268# 230 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269
270# 236 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
271
272# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
273
274# 244 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 245 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
276! New line at end of file is required for FYPP
277# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
278
279# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
280
281! Caution:
282! This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI rank.
283! That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0.
284! For an example see misc/nvidia_uvm/bind.sh.
285# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
286
287# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
288
289# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
290
291# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
292
293# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
294
295# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
296
297# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
298
299# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
300! New line at end of file is required for FYPP
301# 6 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp" 2
302
303!> @brief Characteristic boundary condition (CBC) computations for subsonic inflow, outflow, and slip walls
306 implicit none
307
308 private; public :: s_compute_slip_wall_l, &
316
317contains
318 !> Base L1 calculation
319 function f_base_l1(lambda, rho, c, dpres_ds, dvel_ds) result(L1)
320
321# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
322#if MFC_OpenACC
323# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
324!$acc routine seq
325# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
326#elif MFC_OpenMP
327# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
328
329# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
330
331# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
332!$omp declare target device_type(any)
333# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
334#endif
335 real(wp), dimension(3), intent(in) :: lambda
336 real(wp), intent(in) :: rho, c, dpres_ds
337# 30 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
338 real(wp), dimension(num_dims), intent(in) :: dvel_ds
339# 32 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
340 real(wp) :: l1
341 l1 = lambda(1)*(dpres_ds - rho*c*dvel_ds(dir_idx(1)))
342 end function f_base_l1
343
344 !> Fill density L variables
345 subroutine s_fill_density_l(L, lambda_factor, lambda2, c, mf, dalpha_rho_ds, dpres_ds)
346
347# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
348#if MFC_OpenACC
349# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
350!$acc routine seq
351# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
352#elif MFC_OpenMP
353# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
354
355# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
356
357# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
358!$omp declare target device_type(any)
359# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
360#endif
361# 42 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
362 real(wp), dimension(sys_size), intent(inout) :: L
363# 44 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
364# 47 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
365 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
366# 49 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
367 real(wp), intent(in) :: lambda_factor, lambda2, c
368 real(wp), intent(in) :: dpres_ds
369 integer :: i
370
371 ! $:GPU_LOOP(parallelism='[seq]')
372 do i = 2, momxb
373 l(i) = lambda_factor*lambda2*(c*c*dalpha_rho_ds(i - 1) - mf(i - 1)*dpres_ds)
374 end do
375 end subroutine s_fill_density_l
376
377 !> Fill velocity L variables
378 subroutine s_fill_velocity_l(L, lambda_factor, lambda2, dvel_ds)
379
380# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
381#if MFC_OpenACC
382# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
383!$acc routine seq
384# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
385#elif MFC_OpenMP
386# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
387
388# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
389
390# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
391!$omp declare target device_type(any)
392# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
393#endif
394# 65 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
395 real(wp), dimension(sys_size), intent(inout) :: L
396# 67 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
397# 70 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
398 real(wp), dimension(num_dims), intent(in) :: dvel_ds
399# 72 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
400 real(wp), intent(in) :: lambda_factor, lambda2
401 integer :: i
402
403 ! $:GPU_LOOP(parallelism='[seq]')
404 do i = momxb + 1, momxe
405 l(i) = lambda_factor*lambda2*dvel_ds(dir_idx(i - contxe))
406 end do
407 end subroutine s_fill_velocity_l
408
409 !> Fill advection L variables
410 subroutine s_fill_advection_l(L, lambda_factor, lambda2, dadv_ds)
411
412# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
413#if MFC_OpenACC
414# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
415!$acc routine seq
416# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
417#elif MFC_OpenMP
418# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
419
420# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
421
422# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
423!$omp declare target device_type(any)
424# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
425#endif
426# 87 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
427 real(wp), dimension(sys_size), intent(inout) :: L
428# 89 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
429# 92 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
430 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
431# 94 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
432 real(wp), intent(in) :: lambda_factor, lambda2
433 integer :: i
434
435 ! $:GPU_LOOP(parallelism='[seq]')
436 do i = e_idx, advxe - 1
437 l(i) = lambda_factor*lambda2*dadv_ds(i - momxe)
438 end do
439 end subroutine s_fill_advection_l
440
441 !> Fill chemistry L variables
442 subroutine s_fill_chemistry_l(L, lambda_factor, lambda2, dYs_ds)
443
444# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
445#if MFC_OpenACC
446# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
447!$acc routine seq
448# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
449#elif MFC_OpenMP
450# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
451
452# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
453
454# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
455!$omp declare target device_type(any)
456# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
457#endif
458# 109 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
459 real(wp), dimension(sys_size), intent(inout) :: L
460# 111 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
461# 114 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
462 real(wp), dimension(num_species), intent(in) :: dYs_ds
463# 116 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
464 real(wp), intent(in) :: lambda_factor, lambda2
465 integer :: i
466
467 if (.not. chemistry) return
468
469 ! $:GPU_LOOP(parallelism='[seq]')
470 do i = chemxb, chemxe
471 l(i) = lambda_factor*lambda2*dys_ds(i - chemxb + 1)
472 end do
473 end subroutine s_fill_chemistry_l
474
475 !> Slip wall CBC (Thompson 1990, pg. 451)
476 subroutine s_compute_slip_wall_l(lambda, L, rho, c, dpres_ds, dvel_ds)
477
478# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
479#ifdef _CRAYFTN
480# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
481!DIR$ INLINEALWAYS s_compute_slip_wall_L
482# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
483#elif MFC_OpenACC
484# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
485!$acc routine seq
486# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
487#elif MFC_OpenMP
488# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
489
490# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
491
492# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
493!$omp declare target device_type(any)
494# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
495#endif
496# 131 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
497
498 real(wp), dimension(3), intent(in) :: lambda
499# 136 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
500 real(wp), dimension(sys_size), intent(inout) :: l
501# 138 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
502# 141 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
503 real(wp), dimension(num_dims), intent(in) :: dvel_ds
504# 143 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
505 real(wp), intent(in) :: rho, c, dpres_ds
506 integer :: i
507
508 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
509 l(2:advxe - 1) = 0._wp
510 l(advxe) = l(1)
511 end subroutine s_compute_slip_wall_l
512
513 !> Nonreflecting subsonic buffer CBC (Thompson 1987, pg. 13)
514 subroutine s_compute_nonreflecting_subsonic_buffer_l(lambda, L, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, dYs_ds)
515
516# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
517#ifdef _CRAYFTN
518# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
519!DIR$ INLINEALWAYS s_compute_nonreflecting_subsonic_buffer_L
520# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
521#elif MFC_OpenACC
522# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
523!$acc routine seq
524# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
525#elif MFC_OpenMP
526# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
527
528# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
529
530# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
531!$omp declare target device_type(any)
532# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
533#endif
534# 155 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
535
536 real(wp), dimension(3), intent(in) :: lambda
537# 160 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
538 real(wp), dimension(sys_size), intent(inout) :: l
539# 162 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
540# 168 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
541 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
542 real(wp), dimension(num_dims), intent(in) :: dvel_ds
543 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
544 real(wp), dimension(num_species), intent(in) :: dys_ds
545# 173 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
546 real(wp), intent(in) :: rho, c
547 real(wp), intent(in) :: dpres_ds
548
549 real(wp) :: lambda_factor
550
551 lambda_factor = (5.e-1_wp - 5.e-1_wp*sign(1._wp, lambda(1)))
552 l(1) = lambda_factor*lambda(1)*(dpres_ds - rho*c*dvel_ds(dir_idx(1)))
553
554 lambda_factor = (5.e-1_wp - 5.e-1_wp*sign(1._wp, lambda(2)))
555 call s_fill_density_l(l, lambda_factor, lambda(2), c, mf, dalpha_rho_ds, dpres_ds)
556 call s_fill_velocity_l(l, lambda_factor, lambda(2), dvel_ds)
557 call s_fill_advection_l(l, lambda_factor, lambda(2), dadv_ds)
558 call s_fill_chemistry_l(l, lambda_factor, lambda(2), dys_ds)
559
560 lambda_factor = (5.e-1_wp - 5.e-1_wp*sign(1._wp, lambda(3)))
561 l(advxe) = lambda_factor*lambda(3)*(dpres_ds + rho*c*dvel_ds(dir_idx(1)))
563
564 !> Nonreflecting subsonic inflow CBC (Thompson 1990, pg. 455)
565 subroutine s_compute_nonreflecting_subsonic_inflow_l(lambda, L, rho, c, dpres_ds, dvel_ds)
566
567# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
568#ifdef _CRAYFTN
569# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
570!DIR$ INLINEALWAYS s_compute_nonreflecting_subsonic_inflow_L
571# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
572#elif MFC_OpenACC
573# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
574!$acc routine seq
575# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
576#elif MFC_OpenMP
577# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
578
579# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
580
581# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
582!$omp declare target device_type(any)
583# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
584#endif
585# 195 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
586
587 real(wp), dimension(3), intent(in) :: lambda
588# 200 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
589 real(wp), dimension(sys_size), intent(inout) :: l
590# 202 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
591# 205 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
592 real(wp), dimension(num_dims), intent(in) :: dvel_ds
593# 207 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
594 real(wp), intent(in) :: rho, c, dpres_ds
595
596 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
597 l(2:advxe) = 0._wp
598 if (chemistry) l(chemxb:chemxe) = 0._wp
600
601 !> Nonreflecting subsonic outflow CBC (Thompson 1990, pg. 454)
602 subroutine s_compute_nonreflecting_subsonic_outflow_l(lambda, L, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, dYs_ds)
603
604# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
605#ifdef _CRAYFTN
606# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
607!DIR$ INLINEALWAYS s_compute_nonreflecting_subsonic_outflow_L
608# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
609#elif MFC_OpenACC
610# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
611!$acc routine seq
612# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
613#elif MFC_OpenMP
614# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
615
616# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
617
618# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
619!$omp declare target device_type(any)
620# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
621#endif
622# 218 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
623
624 real(wp), dimension(3), intent(in) :: lambda
625# 223 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
626 real(wp), dimension(sys_size), intent(inout) :: l
627# 225 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
628# 231 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
629 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
630 real(wp), dimension(num_dims), intent(in) :: dvel_ds
631 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
632 real(wp), dimension(num_species), intent(in) :: dys_ds
633# 236 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
634 real(wp), intent(in) :: rho, c
635 real(wp), intent(in) :: dpres_ds
636
637 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
638 call s_fill_density_l(l, 1._wp, lambda(2), c, mf, dalpha_rho_ds, dpres_ds)
639 call s_fill_velocity_l(l, 1._wp, lambda(2), dvel_ds)
640 call s_fill_advection_l(l, 1._wp, lambda(2), dadv_ds)
641 call s_fill_chemistry_l(l, 1._wp, lambda(2), dys_ds)
642 l(advxe) = 0._wp
644
645 !> Force-free subsonic outflow CBC (Thompson 1990, pg. 454)
646 subroutine s_compute_force_free_subsonic_outflow_l(lambda, L, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds)
647
648# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
649#ifdef _CRAYFTN
650# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
651!DIR$ INLINEALWAYS s_compute_force_free_subsonic_outflow_L
652# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
653#elif MFC_OpenACC
654# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
655!$acc routine seq
656# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
657#elif MFC_OpenMP
658# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
659
660# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
661
662# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
663!$omp declare target device_type(any)
664# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
665#endif
666# 251 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
667
668 real(wp), dimension(3), intent(in) :: lambda
669# 256 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
670 real(wp), dimension(sys_size), intent(inout) :: l
671# 258 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
672# 263 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
673 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
674 real(wp), dimension(num_dims), intent(in) :: dvel_ds
675 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
676# 267 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
677 real(wp), intent(in) :: rho, c
678 real(wp), intent(in) :: dpres_ds
679
680 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
681 call s_fill_density_l(l, 1._wp, lambda(2), c, mf, dalpha_rho_ds, dpres_ds)
682 call s_fill_velocity_l(l, 1._wp, lambda(2), dvel_ds)
683 call s_fill_advection_l(l, 1._wp, lambda(2), dadv_ds)
684 l(advxe) = l(1) + 2._wp*rho*c*lambda(2)*dvel_ds(dir_idx(1))
686
687 !> Constant pressure subsonic outflow CBC (Thompson 1990, pg. 455)
688 subroutine s_compute_constant_pressure_subsonic_outflow_l(lambda, L, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds)
689
690# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
691#ifdef _CRAYFTN
692# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
693!DIR$ INLINEALWAYS s_compute_constant_pressure_subsonic_outflow_L
694# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
695#elif MFC_OpenACC
696# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
697!$acc routine seq
698# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
699#elif MFC_OpenMP
700# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
701
702# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
703
704# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
705!$omp declare target device_type(any)
706# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
707#endif
708# 281 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
709
710 real(wp), dimension(3), intent(in) :: lambda
711# 286 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
712 real(wp), dimension(sys_size), intent(inout) :: l
713# 288 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
714# 293 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
715 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
716 real(wp), dimension(num_dims), intent(in) :: dvel_ds
717 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
718# 297 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
719 real(wp), intent(in) :: rho, c
720 real(wp), intent(in) :: dpres_ds
721
722 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
723 call s_fill_density_l(l, 1._wp, lambda(2), c, mf, dalpha_rho_ds, dpres_ds)
724 call s_fill_velocity_l(l, 1._wp, lambda(2), dvel_ds)
725 call s_fill_advection_l(l, 1._wp, lambda(2), dadv_ds)
726 l(advxe) = -l(1)
728
729 !> Supersonic inflow CBC (Thompson 1990, pg. 453)
731
732# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
733#ifdef _CRAYFTN
734# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
735!DIR$ INLINEALWAYS s_compute_supersonic_inflow_L
736# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
737#elif MFC_OpenACC
738# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
739!$acc routine seq
740# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
741#elif MFC_OpenMP
742# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
743
744# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
745
746# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
747!$omp declare target device_type(any)
748# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
749#endif
750# 311 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
751# 314 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
752 real(wp), dimension(sys_size), intent(inout) :: l
753# 316 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
754 l(1:advxe) = 0._wp
755 if (chemistry) l(chemxb:chemxe) = 0._wp
756 end subroutine s_compute_supersonic_inflow_l
757
758 !> Supersonic outflow CBC (Thompson 1990, pg. 453)
759 subroutine s_compute_supersonic_outflow_l(lambda, L, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, dYs_ds)
760
761# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
762#ifdef _CRAYFTN
763# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
764!DIR$ INLINEALWAYS s_compute_supersonic_outflow_L
765# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
766#elif MFC_OpenACC
767# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
768!$acc routine seq
769# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
770#elif MFC_OpenMP
771# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
772
773# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
774
775# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
776!$omp declare target device_type(any)
777# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
778#endif
779# 324 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
780
781 real(wp), dimension(3), intent(in) :: lambda
782# 329 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
783 real(wp), dimension(sys_size), intent(inout) :: l
784# 331 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
785# 337 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
786 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
787 real(wp), dimension(num_dims), intent(in) :: dvel_ds
788 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
789 real(wp), dimension(num_species), intent(in) :: dys_ds
790# 342 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
791 real(wp), intent(in) :: rho, c
792 real(wp), intent(in) :: dpres_ds
793
794 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
795 call s_fill_density_l(l, 1._wp, lambda(2), c, mf, dalpha_rho_ds, dpres_ds)
796 call s_fill_velocity_l(l, 1._wp, lambda(2), dvel_ds)
797 call s_fill_advection_l(l, 1._wp, lambda(2), dadv_ds)
798 call s_fill_chemistry_l(l, 1._wp, lambda(2), dys_ds)
799 l(advxe) = lambda(3)*(dpres_ds + rho*c*dvel_ds(dir_idx(1)))
800 end subroutine s_compute_supersonic_outflow_l
801end module m_compute_cbc
integer, intent(in) l
Characteristic boundary condition (CBC) computations for subsonic inflow, outflow,...
subroutine s_fill_velocity_l(l, lambda_factor, lambda2, dvel_ds)
Fill velocity L variables.
subroutine, public s_compute_nonreflecting_subsonic_buffer_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, dys_ds)
Nonreflecting subsonic buffer CBC (Thompson 1987, pg. 13).
subroutine, public s_compute_force_free_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds)
Force-free subsonic outflow CBC (Thompson 1990, pg. 454).
subroutine, public s_compute_nonreflecting_subsonic_inflow_l(lambda, l, rho, c, dpres_ds, dvel_ds)
Nonreflecting subsonic inflow CBC (Thompson 1990, pg. 455).
subroutine, public s_compute_supersonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, dys_ds)
Supersonic outflow CBC (Thompson 1990, pg. 453).
subroutine s_fill_density_l(l, lambda_factor, lambda2, c, mf, dalpha_rho_ds, dpres_ds)
Fill density L variables.
subroutine, public s_compute_constant_pressure_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds)
Constant pressure subsonic outflow CBC (Thompson 1990, pg. 455).
subroutine s_fill_chemistry_l(l, lambda_factor, lambda2, dys_ds)
Fill chemistry L variables.
subroutine, public s_compute_slip_wall_l(lambda, l, rho, c, dpres_ds, dvel_ds)
Slip wall CBC (Thompson 1990, pg. 451).
subroutine, public s_compute_supersonic_inflow_l(l)
Supersonic inflow CBC (Thompson 1990, pg. 453).
subroutine, public s_compute_nonreflecting_subsonic_outflow_l(lambda, l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, dys_ds)
Nonreflecting subsonic outflow CBC (Thompson 1990, pg. 454).
subroutine s_fill_advection_l(l, lambda_factor, lambda2, dadv_ds)
Fill advection L variables.
real(wp) function f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
Base L1 calculation.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
logical, parameter chemistry
Chemistry modeling.
integer, dimension(3) dir_idx
integer e_idx
Index of energy equation.