60 logical,
intent(in) :: if_ext
61 real(kind=
rp),
intent(in) :: t
62 integer,
intent(in) :: tstep
63 type(
coef_t),
intent(in) :: coef
64 type(
field_t),
intent(inout) :: nut
65 type(
field_t),
intent(in) :: delta
66 real(kind=
rp),
intent(in) :: c
68 type(
field_t),
pointer :: a11, a12, a13, a21, a22, a23, a31, a32, a33
69 type(
field_t),
pointer :: u, v, w
71 real(kind=
rp) :: beta11
72 real(kind=
rp) :: beta12
73 real(kind=
rp) :: beta13
74 real(kind=
rp) :: beta22
75 real(kind=
rp) :: beta23
76 real(kind=
rp) :: beta33
77 real(kind=
rp) :: b_beta
78 real(kind=
rp) :: aijaij
79 integer :: temp_indices(9)
82 if (if_ext .eqv. .true.)
then
104 call dudxyz (a11%x, u%x, coef%drdx, coef%dsdx, coef%dtdx, coef)
105 call dudxyz (a12%x, u%x, coef%drdy, coef%dsdy, coef%dtdy, coef)
106 call dudxyz (a13%x, u%x, coef%drdz, coef%dsdz, coef%dtdz, coef)
108 call dudxyz (a21%x, v%x, coef%drdx, coef%dsdx, coef%dtdx, coef)
109 call dudxyz (a22%x, v%x, coef%drdy, coef%dsdy, coef%dtdy, coef)
110 call dudxyz (a23%x, v%x, coef%drdz, coef%dsdz, coef%dtdz, coef)
112 call dudxyz (a31%x, w%x, coef%drdx, coef%dsdx, coef%dtdx, coef)
113 call dudxyz (a32%x, w%x, coef%drdy, coef%dsdy, coef%dtdy, coef)
114 call dudxyz (a33%x, w%x, coef%drdz, coef%dsdz, coef%dtdz, coef)
126 do concurrent(e = 1:coef%msh%nelv)
127 do concurrent(i = 1:coef%Xh%lxyz)
129 beta11 = a11%x(i,1,1,e)**2 + a21%x(i,1,1,e)**2 + a31%x(i,1,1,e)**2
130 beta22 = a12%x(i,1,1,e)**2 + a22%x(i,1,1,e)**2 + a32%x(i,1,1,e)**2
131 beta33 = a13%x(i,1,1,e)**2 + a23%x(i,1,1,e)**2 + a33%x(i,1,1,e)**2
132 beta12 = a11%x(i,1,1,e)*a12%x(i,1,1,e) + &
133 a21%x(i,1,1,e)*a22%x(i,1,1,e) + &
134 a31%x(i,1,1,e)*a32%x(i,1,1,e)
135 beta13 = a11%x(i,1,1,e)*a13%x(i,1,1,e) + &
136 a21%x(i,1,1,e)*a23%x(i,1,1,e) + &
137 a31%x(i,1,1,e)*a33%x(i,1,1,e)
138 beta23 = a12%x(i,1,1,e)*a13%x(i,1,1,e) + &
139 a22%x(i,1,1,e)*a23%x(i,1,1,e) + &
140 a32%x(i,1,1,e)*a33%x(i,1,1,e)
142 b_beta = beta11*beta22 - beta12*beta12 + beta11*beta33 &
143 - beta13*beta13 + beta22*beta33 - beta23*beta23
145 b_beta =
max(0.0_rp, b_beta)
148 aijaij = beta11 + beta22 + beta33
150 nut%x(i,1,1,e) = c*delta%x(i,1,1,e)*delta%x(i,1,1,e) &
151 * sqrt(b_beta/(aijaij +
neko_eps)) &
157 call col2(nut%x, coef%mult, nut%dof%size())