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# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
20# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
23# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
24# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
25# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
27# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
30# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
32# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
34# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
36# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
47# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
48# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
49# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
63# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
64# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
65# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
67# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
72# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
74# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
76# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
78# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
80# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
82# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
84# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
86# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
88# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
89# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 95 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 100 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 105 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 110 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118# 115 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120# 120 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122# 125 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 130 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126# 135 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128# 165 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130# 219 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132# 233 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134# 258 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136# 269 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138# 271 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 282 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 332 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 342 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147# 361 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149# 378 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151# 388 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
153# 395 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
155# 401 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
157# 407 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
159# 413 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
161# 419 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
163# 425 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
165# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
166# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
167# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
168# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
169# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
171# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
175# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178# 12 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
179# 1 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp" 1
182# 4 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
183# 5 "/home/runner/work/MFC/MFC/src/common/include/defaults/thermochem.fpp"
184# 13 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 2
186# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
187# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
189# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
191# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
193# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
195# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
197# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
199# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
201# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
203# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
205# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
207# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
209# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
211# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
213# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
215# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
217# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
235# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
237# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
239# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
241# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
243# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
245# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
247# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
249# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
251# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
253# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
255# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
257# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
259# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
261# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
263# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
266# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
305# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
308# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
311# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
314# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
317# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
320# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
322# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
323# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
325# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
327# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
332# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
335# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
338# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
341# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
344# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
347# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
349# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
351# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
353# 6 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp" 2
372# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
374# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
376# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
378# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
380# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
382# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
384# 23 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
386# 24 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
388 real(wp),
intent(in) :: tau0, k_val, nn_val
389 real(wp),
intent(in) :: mu_min_val, mu_max_val
390 real(wp),
intent(in) :: shear_rate, hb_m_val
392 real(wp) :: yield_term, power_law_term, g_eff
396 yield_term = tau0*hb_m_val
398 yield_term = tau0*(1._wp - exp(-hb_m_val*shear_rate))/shear_rate
400 power_law_term = k_val*(g_eff**(nn_val - 1._wp))
402 mu = yield_term + power_law_term
403 if (mu_min_val >
dflt_real) mu = max(mu, mu_min_val)
404 if (mu_max_val >
dflt_real) mu = min(mu, mu_max_val)
412# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
414# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
416# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
418# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
420# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
422# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
424# 48 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
426# 49 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
428 real(wp),
intent(in) :: d_xx, d_yy, d_zz, d_xy, d_xz, d_yz
429 real(wp) :: shear_rate
431 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)))
441# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
443# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
445# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
447# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
449# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
451# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
453# 62 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
455# 63 "/home/runner/work/MFC/MFC/src/simulation/m_hb_function.fpp"
457 real(wp),
dimension(*),
intent(in) :: alpha
458 real(wp),
intent(in) :: shear_rate
459 real(wp),
dimension(2,*),
intent(in) :: res
460 real(wp),
dimension(2),
intent(out) :: re_out
468 if (re_size(i) > 0) re_out(i) = 0._wp
479 re_out(i) = alpha(fl)*mu_q + re_out(i)
481 re_out(i) = alpha(fl)/res(i, q) + re_out(i)
484 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.