66 delta, c_dyn, test_filter, mij, lij, num, den)
67 logical,
intent(in) :: if_ext
68 real(kind=
rp),
intent(in) :: t
69 integer,
intent(in) :: tstep
70 type(
coef_t),
intent(in) :: coef
71 type(
field_t),
intent(inout) :: nut
72 type(
field_t),
intent(in) :: delta
73 type(
field_t),
intent(inout) :: c_dyn
75 type(
field_t),
intent(inout) :: mij(6), lij(6)
76 type(
field_t),
intent(inout) :: num, den
78 type(
field_t),
pointer :: u, v, w
81 type(
field_t),
pointer :: s11, s22, s33, s12, s13, s23, s_abs
82 real(kind=
rp) :: alpha
83 integer :: temp_indices(7)
86 if (tstep .eq. 1)
then
92 if (if_ext .eqv. .true.)
then
112 call strain_rate(s11%x, s22%x, s33%x, s12%x, s13%x, s23%x, &
115 call coef%gs_h%op(s11%x, s11%dof%size(),
gs_op_add)
116 call coef%gs_h%op(s22%x, s11%dof%size(),
gs_op_add)
117 call coef%gs_h%op(s33%x, s11%dof%size(),
gs_op_add)
118 call coef%gs_h%op(s12%x, s11%dof%size(),
gs_op_add)
119 call coef%gs_h%op(s13%x, s11%dof%size(),
gs_op_add)
120 call coef%gs_h%op(s23%x, s11%dof%size(),
gs_op_add)
127 do i = 1, u%dof%size()
128 s11%x(i,1,1,1) = s11%x(i,1,1,1) * coef%mult(i,1,1,1)
129 s22%x(i,1,1,1) = s22%x(i,1,1,1) * coef%mult(i,1,1,1)
130 s33%x(i,1,1,1) = s33%x(i,1,1,1) * coef%mult(i,1,1,1)
131 s12%x(i,1,1,1) = s12%x(i,1,1,1) * coef%mult(i,1,1,1)
132 s13%x(i,1,1,1) = s13%x(i,1,1,1) * coef%mult(i,1,1,1)
133 s23%x(i,1,1,1) = s23%x(i,1,1,1) * coef%mult(i,1,1,1)
142 do i = 1, u%dof%size()
143 s_abs%x(i,1,1,1) = sqrt(2.0_rp * (s11%x(i,1,1,1)*s11%x(i,1,1,1) + &
144 s22%x(i,1,1,1)*s22%x(i,1,1,1) + &
145 s33%x(i,1,1,1)*s33%x(i,1,1,1)) + &
146 4.0_rp * (s12%x(i,1,1,1)*s12%x(i,1,1,1) + &
147 s13%x(i,1,1,1)*s13%x(i,1,1,1) + &
148 s23%x(i,1,1,1)*s23%x(i,1,1,1)))
154 s_abs, test_filter, delta, u%dof%size())
162 do i = 1, u%dof%size()
163 if (den%x(i,1,1,1) .gt. 0.0_rp)
then
164 c_dyn%x(i,1,1,1) = 0.5_rp * (num%x(i,1,1,1)/den%x(i,1,1,1))
166 c_dyn%x(i,1,1,1) = 0.0_rp
168 c_dyn%x(i,1,1,1) =
max(c_dyn%x(i,1,1,1),0.0_rp)
169 nut%x(i,1,1,1) = c_dyn%x(i,1,1,1) * delta%x(i,1,1,1)**2 &
175 call col2(nut%x, coef%mult, nut%dof%size())
190 type(
field_t),
intent(inout) :: lij(6)
191 type(
field_t),
pointer,
intent(in) :: u, v, w
193 integer,
intent(in) :: n
196 integer :: temp_indices(3)
197 type(
field_t),
pointer :: fu, fv, fw
203 call test_filter%apply(fu, u)
204 call test_filter%apply(fv, v)
205 call test_filter%apply(fw, w)
214 lij(1)%x(i,1,1,1) = fu%x(i,1,1,1) * fu%x(i,1,1,1)
215 lij(2)%x(i,1,1,1) = fv%x(i,1,1,1) * fv%x(i,1,1,1)
216 lij(3)%x(i,1,1,1) = fw%x(i,1,1,1) * fw%x(i,1,1,1)
217 lij(4)%x(i,1,1,1) = fu%x(i,1,1,1) * fv%x(i,1,1,1)
218 lij(5)%x(i,1,1,1) = fu%x(i,1,1,1) * fw%x(i,1,1,1)
219 lij(6)%x(i,1,1,1) = fv%x(i,1,1,1) * fw%x(i,1,1,1)
226 call col3(fu%x, u%x, u%x, n)
227 call test_filter%apply(fv, fu)
228 call sub2(lij(1)%x, fv%x, n)
230 call col3(fu%x, v%x, v%x, n)
231 call test_filter%apply(fv, fu)
232 call sub2(lij(2)%x, fv%x, n)
234 call col3(fu%x, w%x, w%x, n)
235 call test_filter%apply(fv, fu)
236 call sub2(lij(3)%x, fv%x, n)
238 call col3(fu%x, u%x, v%x, n)
239 call test_filter%apply(fv, fu)
240 call sub2(lij(4)%x, fv%x, n)
242 call col3(fu%x, u%x, w%x, n)
243 call test_filter%apply(fv, fu)
244 call sub2(lij(5)%x, fv%x, n)
246 call col3(fu%x, v%x, w%x, n)
247 call test_filter%apply(fv, fu)
248 call sub2(lij(6)%x, fv%x, n)
269 s_abs, test_filter, delta, n)
270 type(
field_t),
intent(inout) :: mij(6)
271 type(
field_t),
intent(inout) :: s11, s22, s33, s12, s13, s23, s_abs
273 type(
field_t),
intent(in) :: delta
274 integer,
intent(in) :: n
276 integer :: temp_indices(6)
277 type(
field_t),
pointer :: fs11, fs22, fs33, fs12, fs13, fs23
278 real(kind=
rp) :: fs_abs, delta2
279 real(kind=
rp) :: delta_ratio2
282 delta_ratio2 = ((test_filter%nx-1.0_rp)/(test_filter%nt-1.0_rp))**2
294 call test_filter%apply(fs11, s11)
295 call test_filter%apply(fs22, s22)
296 call test_filter%apply(fs33, s33)
297 call test_filter%apply(fs12, s12)
298 call test_filter%apply(fs13, s13)
299 call test_filter%apply(fs23, s23)
309 delta2 = delta%x(i,1,1,1)**2
310 fs_abs = sqrt(2.0_rp * &
311 (fs11%x(i,1,1,1)*fs11%x(i,1,1,1) + &
312 fs22%x(i,1,1,1)*fs22%x(i,1,1,1) + &
313 fs33%x(i,1,1,1)*fs33%x(i,1,1,1)) + &
314 4.0_rp * (fs12%x(i,1,1,1)*fs12%x(i,1,1,1) + &
315 fs13%x(i,1,1,1)*fs13%x(i,1,1,1) + &
316 fs23%x(i,1,1,1)*fs23%x(i,1,1,1)))
317 mij(1)%x(i,1,1,1) = delta_ratio2 * delta2 * fs_abs * fs11%x(i,1,1,1)
318 mij(2)%x(i,1,1,1) = delta_ratio2 * delta2 * fs_abs * fs22%x(i,1,1,1)
319 mij(3)%x(i,1,1,1) = delta_ratio2 * delta2 * fs_abs * fs33%x(i,1,1,1)
320 mij(4)%x(i,1,1,1) = delta_ratio2 * delta2 * fs_abs * fs12%x(i,1,1,1)
321 mij(5)%x(i,1,1,1) = delta_ratio2 * delta2 * fs_abs * fs13%x(i,1,1,1)
322 mij(6)%x(i,1,1,1) = delta_ratio2 * delta2 * fs_abs * fs23%x(i,1,1,1)
323 fs33%x(i,1,1,1) = s_abs%x(i,1,1,1) * delta2
328 call col3(fs11%x, fs33%x, s11%x, n)
329 call test_filter%apply(fs22, fs11)
330 call sub2(mij(1)%x, fs22%x, n)
332 call col3(fs11%x, fs33%x, s22%x, n)
333 call test_filter%apply(fs22, fs11)
334 call sub2(mij(2)%x, fs22%x, n)
336 call col3(fs11%x, fs33%x, s33%x, n)
337 call test_filter%apply(fs22, fs11)
338 call sub2(mij(3)%x, fs22%x, n)
340 call col3(fs11%x, fs33%x, s12%x, n)
341 call test_filter%apply(fs22, fs11)
342 call sub2(mij(4)%x, fs22%x, n)
344 call col3(fs11%x, fs33%x, s13%x, n)
345 call test_filter%apply(fs22, fs11)
346 call sub2(mij(5)%x, fs22%x, n)
348 call col3(fs11%x, fs33%x, s23%x, n)
349 call test_filter%apply(fs22, fs11)
350 call sub2(mij(6)%x, fs22%x, n)
364 type(
field_t),
intent(inout) :: num, den
365 type(
field_t),
intent(in) :: lij(6), mij(6)
366 real(kind=
rp),
intent(in) :: alpha
367 integer,
intent(in) :: n
369 real(kind=
rp) :: num_curr, den_curr
378 num_curr = mij(1)%x(i,1,1,1)*lij(1)%x(i,1,1,1) + &
379 mij(2)%x(i,1,1,1)*lij(2)%x(i,1,1,1) + &
380 mij(3)%x(i,1,1,1)*lij(3)%x(i,1,1,1) + &
381 2.0_rp*(mij(4)%x(i,1,1,1)*lij(4)%x(i,1,1,1) + &
382 mij(5)%x(i,1,1,1)*lij(5)%x(i,1,1,1) + &
383 mij(6)%x(i,1,1,1)*lij(6)%x(i,1,1,1))
384 den_curr = mij(1)%x(i,1,1,1)*mij(1)%x(i,1,1,1) + &
385 mij(2)%x(i,1,1,1)*mij(2)%x(i,1,1,1) + &
386 mij(3)%x(i,1,1,1)*mij(3)%x(i,1,1,1) + &
387 2.0_rp*(mij(4)%x(i,1,1,1)*mij(4)%x(i,1,1,1) + &
388 mij(5)%x(i,1,1,1)*mij(5)%x(i,1,1,1) + &
389 mij(6)%x(i,1,1,1)*mij(6)%x(i,1,1,1))
392 num%x(i,1,1,1) = alpha * num%x(i,1,1,1) + (1.0_rp - alpha) * num_curr
393 den%x(i,1,1,1) = alpha * den%x(i,1,1,1) + (1.0_rp - alpha) * den_curr