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# 187 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259
260# 198 "/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# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265
266# 220 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
267
268# 226 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269
270# 232 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
271
272# 234 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
273# 235 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
274! New line at end of file is required for FYPP
275# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
276
277# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
278
279! Caution:
280! This macro requires the use of a binding script to set CUDA_VISIBLE_DEVICES, such that we have one GPU device per MPI rank.
281! That's because for both cudaMemAdvise (preferred location) and cudaMemPrefetchAsync we use location = device_id = 0.
282! For an example see misc/nvidia_uvm/bind.sh.
283# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
284
285# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
286
287# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
288
289# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
290
291# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
292
293# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
294
295# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
296
297# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
298! New line at end of file is required for FYPP
299# 6 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp" 2
300
301!> @brief Characteristic boundary condition (CBC) computations for subsonic inflow, outflow, and slip walls
304 implicit none
305
306 private; public :: s_compute_slip_wall_l, &
314
315contains
316 !> Base L1 calculation
317 function f_base_l1(lambda, rho, c, dpres_ds, dvel_ds) result(L1)
318
319# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
320#if MFC_OpenACC
321# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
322!$acc routine seq
323# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
324#elif MFC_OpenMP
325# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
326
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!$omp declare target device_type(any)
331# 24 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
332#endif
333 real(wp), dimension(3), intent(in) :: lambda
334 real(wp), intent(in) :: rho, c, dpres_ds
335# 30 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
336 real(wp), dimension(num_dims), intent(in) :: dvel_ds
337# 32 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
338 real(wp) :: l1
339 l1 = lambda(1)*(dpres_ds - rho*c*dvel_ds(dir_idx(1)))
340 end function f_base_l1
341
342 !> Fill density L variables
343 subroutine s_fill_density_l(L, lambda_factor, lambda2, c, mf, dalpha_rho_ds, dpres_ds)
344
345# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
346#if MFC_OpenACC
347# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
348!$acc routine seq
349# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
350#elif MFC_OpenMP
351# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
352
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!$omp declare target device_type(any)
357# 38 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
358#endif
359# 42 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
360 real(wp), dimension(sys_size), intent(inout) :: L
361# 44 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
362# 47 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
363 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
364# 49 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
365 real(wp), intent(in) :: lambda_factor, lambda2, c
366 real(wp), intent(in) :: dpres_ds
367 integer :: i
368
369 ! $:GPU_LOOP(parallelism='[seq]')
370 do i = 2, momxb
371 l(i) = lambda_factor*lambda2*(c*c*dalpha_rho_ds(i - 1) - mf(i - 1)*dpres_ds)
372 end do
373 end subroutine s_fill_density_l
374
375 !> Fill velocity L variables
376 subroutine s_fill_velocity_l(L, lambda_factor, lambda2, dvel_ds)
377
378# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
379#if MFC_OpenACC
380# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
381!$acc routine seq
382# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
383#elif MFC_OpenMP
384# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
385
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!$omp declare target device_type(any)
390# 61 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
391#endif
392# 65 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
393 real(wp), dimension(sys_size), intent(inout) :: L
394# 67 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
395# 70 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
396 real(wp), dimension(num_dims), intent(in) :: dvel_ds
397# 72 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
398 real(wp), intent(in) :: lambda_factor, lambda2
399 integer :: i
400
401 ! $:GPU_LOOP(parallelism='[seq]')
402 do i = momxb + 1, momxe
403 l(i) = lambda_factor*lambda2*dvel_ds(dir_idx(i - contxe))
404 end do
405 end subroutine s_fill_velocity_l
406
407 !> Fill advection L variables
408 subroutine s_fill_advection_l(L, lambda_factor, lambda2, dadv_ds)
409
410# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
411#if MFC_OpenACC
412# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
413!$acc routine seq
414# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
415#elif MFC_OpenMP
416# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
417
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!$omp declare target device_type(any)
422# 83 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
423#endif
424# 87 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
425 real(wp), dimension(sys_size), intent(inout) :: L
426# 89 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
427# 92 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
428 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
429# 94 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
430 real(wp), intent(in) :: lambda_factor, lambda2
431 integer :: i
432
433 ! $:GPU_LOOP(parallelism='[seq]')
434 do i = e_idx, advxe - 1
435 l(i) = lambda_factor*lambda2*dadv_ds(i - momxe)
436 end do
437 end subroutine s_fill_advection_l
438
439 !> Fill chemistry L variables
440 subroutine s_fill_chemistry_l(L, lambda_factor, lambda2, dYs_ds)
441
442# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
443#if MFC_OpenACC
444# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
445!$acc routine seq
446# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
447#elif MFC_OpenMP
448# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
449
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!$omp declare target device_type(any)
454# 105 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
455#endif
456# 109 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
457 real(wp), dimension(sys_size), intent(inout) :: L
458# 111 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
459# 114 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
460 real(wp), dimension(num_species), intent(in) :: dYs_ds
461# 116 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
462 real(wp), intent(in) :: lambda_factor, lambda2
463 integer :: i
464
465 if (.not. chemistry) return
466
467 ! $:GPU_LOOP(parallelism='[seq]')
468 do i = chemxb, chemxe
469 l(i) = lambda_factor*lambda2*dys_ds(i - chemxb + 1)
470 end do
471 end subroutine s_fill_chemistry_l
472
473 !> Slip wall CBC (Thompson 1990, pg. 451)
474 subroutine s_compute_slip_wall_l(lambda, L, rho, c, dpres_ds, dvel_ds)
475
476# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
477#ifdef _CRAYFTN
478# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
479!DIR$ INLINEALWAYS s_compute_slip_wall_L
480# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
481#elif MFC_OpenACC
482# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
483!$acc routine seq
484# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
485#elif MFC_OpenMP
486# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
487
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!$omp declare target device_type(any)
492# 129 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
493#endif
494# 131 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
495
496 real(wp), dimension(3), intent(in) :: lambda
497# 136 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
498 real(wp), dimension(sys_size), intent(inout) :: l
499# 138 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
500# 141 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
501 real(wp), dimension(num_dims), intent(in) :: dvel_ds
502# 143 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
503 real(wp), intent(in) :: rho, c, dpres_ds
504 integer :: i
505
506 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
507 l(2:advxe - 1) = 0._wp
508 l(advxe) = l(1)
509 end subroutine s_compute_slip_wall_l
510
511 !> Nonreflecting subsonic buffer CBC (Thompson 1987, pg. 13)
512 subroutine s_compute_nonreflecting_subsonic_buffer_l(lambda, L, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, dYs_ds)
513
514# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
515#ifdef _CRAYFTN
516# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
517!DIR$ INLINEALWAYS s_compute_nonreflecting_subsonic_buffer_L
518# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
519#elif MFC_OpenACC
520# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
521!$acc routine seq
522# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
523#elif MFC_OpenMP
524# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
525
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!$omp declare target device_type(any)
530# 153 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
531#endif
532# 155 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
533
534 real(wp), dimension(3), intent(in) :: lambda
535# 160 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
536 real(wp), dimension(sys_size), intent(inout) :: l
537# 162 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
538# 168 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
539 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
540 real(wp), dimension(num_dims), intent(in) :: dvel_ds
541 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
542 real(wp), dimension(num_species), intent(in) :: dys_ds
543# 173 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
544 real(wp), intent(in) :: rho, c
545 real(wp), intent(in) :: dpres_ds
546
547 real(wp) :: lambda_factor
548
549 lambda_factor = (5.e-1_wp - 5.e-1_wp*sign(1._wp, lambda(1)))
550 l(1) = lambda_factor*lambda(1)*(dpres_ds - rho*c*dvel_ds(dir_idx(1)))
551
552 lambda_factor = (5.e-1_wp - 5.e-1_wp*sign(1._wp, lambda(2)))
553 call s_fill_density_l(l, lambda_factor, lambda(2), c, mf, dalpha_rho_ds, dpres_ds)
554 call s_fill_velocity_l(l, lambda_factor, lambda(2), dvel_ds)
555 call s_fill_advection_l(l, lambda_factor, lambda(2), dadv_ds)
556 call s_fill_chemistry_l(l, lambda_factor, lambda(2), dys_ds)
557
558 lambda_factor = (5.e-1_wp - 5.e-1_wp*sign(1._wp, lambda(3)))
559 l(advxe) = lambda_factor*lambda(3)*(dpres_ds + rho*c*dvel_ds(dir_idx(1)))
561
562 !> Nonreflecting subsonic inflow CBC (Thompson 1990, pg. 455)
563 subroutine s_compute_nonreflecting_subsonic_inflow_l(lambda, L, rho, c, dpres_ds, dvel_ds)
564
565# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
566#ifdef _CRAYFTN
567# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
568!DIR$ INLINEALWAYS s_compute_nonreflecting_subsonic_inflow_L
569# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
570#elif MFC_OpenACC
571# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
572!$acc routine seq
573# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
574#elif MFC_OpenMP
575# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
576
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!$omp declare target device_type(any)
581# 193 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
582#endif
583# 195 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
584
585 real(wp), dimension(3), intent(in) :: lambda
586# 200 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
587 real(wp), dimension(sys_size), intent(inout) :: l
588# 202 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
589# 205 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
590 real(wp), dimension(num_dims), intent(in) :: dvel_ds
591# 207 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
592 real(wp), intent(in) :: rho, c, dpres_ds
593
594 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
595 l(2:advxe) = 0._wp
596 if (chemistry) l(chemxb:chemxe) = 0._wp
598
599 !> Nonreflecting subsonic outflow CBC (Thompson 1990, pg. 454)
600 subroutine s_compute_nonreflecting_subsonic_outflow_l(lambda, L, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, dYs_ds)
601
602# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
603#ifdef _CRAYFTN
604# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
605!DIR$ INLINEALWAYS s_compute_nonreflecting_subsonic_outflow_L
606# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
607#elif MFC_OpenACC
608# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
609!$acc routine seq
610# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
611#elif MFC_OpenMP
612# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
613
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!$omp declare target device_type(any)
618# 216 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
619#endif
620# 218 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
621
622 real(wp), dimension(3), intent(in) :: lambda
623# 223 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
624 real(wp), dimension(sys_size), intent(inout) :: l
625# 225 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
626# 231 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
627 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
628 real(wp), dimension(num_dims), intent(in) :: dvel_ds
629 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
630 real(wp), dimension(num_species), intent(in) :: dys_ds
631# 236 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
632 real(wp), intent(in) :: rho, c
633 real(wp), intent(in) :: dpres_ds
634
635 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
636 call s_fill_density_l(l, 1._wp, lambda(2), c, mf, dalpha_rho_ds, dpres_ds)
637 call s_fill_velocity_l(l, 1._wp, lambda(2), dvel_ds)
638 call s_fill_advection_l(l, 1._wp, lambda(2), dadv_ds)
639 call s_fill_chemistry_l(l, 1._wp, lambda(2), dys_ds)
640 l(advxe) = 0._wp
642
643 !> Force-free subsonic outflow CBC (Thompson 1990, pg. 454)
644 subroutine s_compute_force_free_subsonic_outflow_l(lambda, L, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds)
645
646# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
647#ifdef _CRAYFTN
648# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
649!DIR$ INLINEALWAYS s_compute_force_free_subsonic_outflow_L
650# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
651#elif MFC_OpenACC
652# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
653!$acc routine seq
654# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
655#elif MFC_OpenMP
656# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
657
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!$omp declare target device_type(any)
662# 249 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
663#endif
664# 251 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
665
666 real(wp), dimension(3), intent(in) :: lambda
667# 256 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
668 real(wp), dimension(sys_size), intent(inout) :: l
669# 258 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
670# 263 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
671 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
672 real(wp), dimension(num_dims), intent(in) :: dvel_ds
673 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
674# 267 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
675 real(wp), intent(in) :: rho, c
676 real(wp), intent(in) :: dpres_ds
677
678 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
679 call s_fill_density_l(l, 1._wp, lambda(2), c, mf, dalpha_rho_ds, dpres_ds)
680 call s_fill_velocity_l(l, 1._wp, lambda(2), dvel_ds)
681 call s_fill_advection_l(l, 1._wp, lambda(2), dadv_ds)
682 l(advxe) = l(1) + 2._wp*rho*c*lambda(2)*dvel_ds(dir_idx(1))
684
685 !> Constant pressure subsonic outflow CBC (Thompson 1990, pg. 455)
686 subroutine s_compute_constant_pressure_subsonic_outflow_l(lambda, L, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds)
687
688# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
689#ifdef _CRAYFTN
690# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
691!DIR$ INLINEALWAYS s_compute_constant_pressure_subsonic_outflow_L
692# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
693#elif MFC_OpenACC
694# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
695!$acc routine seq
696# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
697#elif MFC_OpenMP
698# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
699
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!$omp declare target device_type(any)
704# 279 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
705#endif
706# 281 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
707
708 real(wp), dimension(3), intent(in) :: lambda
709# 286 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
710 real(wp), dimension(sys_size), intent(inout) :: l
711# 288 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
712# 293 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
713 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
714 real(wp), dimension(num_dims), intent(in) :: dvel_ds
715 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
716# 297 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
717 real(wp), intent(in) :: rho, c
718 real(wp), intent(in) :: dpres_ds
719
720 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
721 call s_fill_density_l(l, 1._wp, lambda(2), c, mf, dalpha_rho_ds, dpres_ds)
722 call s_fill_velocity_l(l, 1._wp, lambda(2), dvel_ds)
723 call s_fill_advection_l(l, 1._wp, lambda(2), dadv_ds)
724 l(advxe) = -l(1)
726
727 !> Supersonic inflow CBC (Thompson 1990, pg. 453)
729
730# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
731#ifdef _CRAYFTN
732# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
733!DIR$ INLINEALWAYS s_compute_supersonic_inflow_L
734# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
735#elif MFC_OpenACC
736# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
737!$acc routine seq
738# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
739#elif MFC_OpenMP
740# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
741
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!$omp declare target device_type(any)
746# 309 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
747#endif
748# 311 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
749# 314 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
750 real(wp), dimension(sys_size), intent(inout) :: l
751# 316 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
752 l(1:advxe) = 0._wp
753 if (chemistry) l(chemxb:chemxe) = 0._wp
754 end subroutine s_compute_supersonic_inflow_l
755
756 !> Supersonic outflow CBC (Thompson 1990, pg. 453)
757 subroutine s_compute_supersonic_outflow_l(lambda, L, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, dYs_ds)
758
759# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
760#ifdef _CRAYFTN
761# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
762!DIR$ INLINEALWAYS s_compute_supersonic_outflow_L
763# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
764#elif MFC_OpenACC
765# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
766!$acc routine seq
767# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
768#elif MFC_OpenMP
769# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
770
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!$omp declare target device_type(any)
775# 322 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
776#endif
777# 324 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
778
779 real(wp), dimension(3), intent(in) :: lambda
780# 329 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
781 real(wp), dimension(sys_size), intent(inout) :: l
782# 331 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
783# 337 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
784 real(wp), dimension(num_fluids), intent(in) :: mf, dalpha_rho_ds
785 real(wp), dimension(num_dims), intent(in) :: dvel_ds
786 real(wp), dimension(num_fluids), intent(in) :: dadv_ds
787 real(wp), dimension(num_species), intent(in) :: dys_ds
788# 342 "/home/runner/work/MFC/MFC/src/simulation/m_compute_cbc.fpp"
789 real(wp), intent(in) :: rho, c
790 real(wp), intent(in) :: dpres_ds
791
792 l(1) = f_base_l1(lambda, rho, c, dpres_ds, dvel_ds)
793 call s_fill_density_l(l, 1._wp, lambda(2), c, mf, dalpha_rho_ds, dpres_ds)
794 call s_fill_velocity_l(l, 1._wp, lambda(2), dvel_ds)
795 call s_fill_advection_l(l, 1._wp, lambda(2), dadv_ds)
796 call s_fill_chemistry_l(l, 1._wp, lambda(2), dys_ds)
797 l(advxe) = lambda(3)*(dpres_ds + rho*c*dvel_ds(dir_idx(1)))
798 end subroutine s_compute_supersonic_outflow_l
799end 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.