1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
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"
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"
19# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
20# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
40# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
41# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
42# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
72# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
74# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
75# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
77# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 126 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 156 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 197 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118# 211 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120# 236 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122# 247 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 249 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 260 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 310 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 320 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 356 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 366 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 373 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 379 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 385 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145# 391 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147# 397 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149# 403 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
152# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
153# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
154# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
155# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
157# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
184# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
186# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
236# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
238# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
240# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
242# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
245# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
304# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
306# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
311# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
317# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
320# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
323# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
326# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
328# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
330# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
332# 6 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp" 2
351# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
353# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
355# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
357# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
359# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
361# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
363# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
366 real(wp),
intent(in) :: tau0, k_val, nn_val
367 real(wp),
intent(in) :: mu_min_val, mu_max_val
368 real(wp),
intent(in) :: shear_rate, hb_m_val
370 real(wp) :: yield_term, power_law_term, g_eff
374 yield_term = tau0*hb_m_val
376 yield_term = tau0*(1._wp - exp(-hb_m_val*shear_rate))/shear_rate
378 power_law_term = k_val*(g_eff**(nn_val - 1._wp))
380 mu = yield_term + power_law_term
381 if (mu_min_val >
dflt_real) mu = max(mu, mu_min_val)
382 if (mu_max_val >
dflt_real) mu = min(mu, mu_max_val)
390# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
392# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
394# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
396# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
398# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
400# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
402# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
405 real(wp),
intent(in) :: d_xx, d_yy, d_zz, d_xy, d_xz, d_yz
406 real(wp) :: shear_rate
408 shear_rate = sqrt(2._wp*(d_xx*d_xx + d_yy*d_yy + d_zz*d_zz + 2._wp*(d_xy*d_xy + d_xz*d_xz + d_yz*d_yz)))
418# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
420# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
422# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
424# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
426# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
428# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
430# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
433 real(wp),
dimension(*),
intent(in) :: alpha
434 real(wp),
intent(in) :: shear_rate
435 real(wp),
dimension(2,*),
intent(in) :: res
436 real(wp),
dimension(2),
intent(out) :: re_out
444 if (re_size(i) > 0) re_out(i) = 0._wp
455 re_out(i) = alpha(fl)*mu_q + re_out(i)
457 re_out(i) = alpha(fl)/res(i, q) + re_out(i)
460 re_out(i) = 1._wp/max(re_out(i),
sgm_eps)
Compile-time constant parameters: default values, tolerances, and physical constants.
real(wp), parameter sgm_eps
Segmentation tolerance.
real(wp), parameter dflt_real
Default real value.
real(wp), parameter verysmall
Very small number.
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...
logical any_non_newtonian
.true. if any fluid is non-Newtonian
real(wp), dimension(:), allocatable hb_tau0
real(wp), dimension(:), allocatable hb_k
real(wp), dimension(:), allocatable hb_nn
real(wp), dimension(:), allocatable hb_m_arr
real(wp), dimension(:), allocatable hb_mu_min
real(wp), dimension(:), allocatable hb_mu_max
logical, dimension(:), allocatable is_non_newtonian
per-fluid NN flag
Herschel-Bulkley non-Newtonian viscosity: formula, shear rate, and mixture inverse-Re.
subroutine, public s_compute_mixture_inv_re(alpha, shear_rate, res, re_out)
Mixture inverse Reynolds (= 1/mu_mix) per direction (1=shear, 2=bulk) at one state....
real(wp) function, public f_compute_shear_rate_from_components(d_xx, d_yy, d_zz, d_xy, d_xz, d_yz)
Shear rate gamma_dot = sqrt(2 D_ij D_ij). Absent dims pass 0.
real(wp) function, public f_compute_hb_viscosity(tau0, k_val, nn_val, mu_min_val, mu_max_val, shear_rate, hb_m_val)
Papanastasiou-regularized Herschel-Bulkley viscosity.