111 T11, T12, T13, T21, T22, T23, T31, T32, T33, & ! (out)
114 ddens_, momx_, momy_, momz_, drhot_, dens_hyd, pres_hyd, &
116 dx, dy, dz, sx, sy, sz, lift, lmesh, elem, lmesh2d, elem2d, &
125 real(rp),
intent(out) :: t11(elem%np,lmesh%nea)
126 real(rp),
intent(out) :: t12(elem%np,lmesh%nea)
127 real(rp),
intent(out) :: t13(elem%np,lmesh%nea)
128 real(rp),
intent(out) :: t21(elem%np,lmesh%nea)
129 real(rp),
intent(out) :: t22(elem%np,lmesh%nea)
130 real(rp),
intent(out) :: t23(elem%np,lmesh%nea)
131 real(rp),
intent(out) :: t31(elem%np,lmesh%nea)
132 real(rp),
intent(out) :: t32(elem%np,lmesh%nea)
133 real(rp),
intent(out) :: t33(elem%np,lmesh%nea)
134 real(rp),
intent(out) :: df1(elem%np,lmesh%nea)
135 real(rp),
intent(out) :: df2(elem%np,lmesh%nea)
136 real(rp),
intent(out) :: df3(elem%np,lmesh%nea)
137 real(rp),
intent(out) :: tke(elem%np,lmesh%nea)
138 real(rp),
intent(out) :: nu(elem%np,lmesh%nea)
139 real(rp),
intent(out) :: kh(elem%np,lmesh%nea)
140 real(rp),
intent(in) :: ddens_(elem%np,lmesh%nea)
141 real(rp),
intent(in) :: momx_ (elem%np,lmesh%nea)
142 real(rp),
intent(in) :: momy_ (elem%np,lmesh%nea)
143 real(rp),
intent(in) :: momz_ (elem%np,lmesh%nea)
144 real(rp),
intent(in) :: drhot_(elem%np,lmesh%nea)
145 real(rp),
intent(in) :: dens_hyd(elem%np,lmesh%nea)
146 real(rp),
intent(in) :: pres_hyd(elem%np,lmesh%nea)
147 real(rp),
intent(in) :: pres(elem%np,lmesh%nea)
148 real(rp),
intent(in) :: pt(elem%np,lmesh%nea)
149 type(
sparsemat),
intent(in) :: dx, dy, dz
150 type(
sparsemat),
intent(in) :: sx, sy, sz
152 logical,
intent(in) :: is_bound(elem%nfptot,lmesh%ne)
154 real(rp) :: fx(elem%np), fy(elem%np), fz(elem%np), liftdelflx(elem%np)
155 real(rp) :: dens(elem%np), rdens(elem%np), rhot(elem%np), q(elem%np)
156 real(rp) :: ddensdxi(elem%np,3)
157 real(rp) :: dveldxi(elem%np,3,3)
158 real(rp) :: del_flux_rho (elem%nfptot,lmesh%ne,3)
159 real(rp) :: del_flux_mom (elem%nfptot,lmesh%ne,3,3)
160 real(rp) :: del_flux_rhot(elem%nfptot,lmesh%ne,3)
162 real(rp) :: s11(elem%np), s12(elem%np), s22(elem%np), s23(elem%np), s31(elem%np), s33(elem%np)
163 real(rp) :: skkovthree
170 call cal_del_flux_grad( del_flux_rho, del_flux_mom, del_flux_rhot, &
171 ddens_, momx_, momy_, momz_, drhot_, dens_hyd, pres_hyd, pt, &
172 lmesh%normal_fn(:,:,1), lmesh%normal_fn(:,:,2), lmesh%normal_fn(:,:,3), &
173 lmesh%vmapM, lmesh%vmapP, &
174 lmesh, elem, is_bound )
182 do ke=lmesh%NeS, lmesh%NeE
184 dens(:) = dens_hyd(:,ke) + ddens_(:,ke)
185 rdens(:) = 1.0_rp / dens(:)
186 rhot(:) = dens(:) * pt(:,ke)
190 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_rho(:,ke,1), liftdelflx )
191 ddensdxi(:,1) = lmesh%Escale(:,ke,1,1) * fx(:) + liftdelflx(:)
194 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_rho(:,ke,2), liftdelflx )
195 ddensdxi(:,2) = lmesh%Escale(:,ke,2,2) * fy(:) + liftdelflx(:)
198 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_rho(:,ke,3), liftdelflx )
199 ddensdxi(:,3) = lmesh%Escale(:,ke,3,3) * fz(:) + liftdelflx(:)
202 q(:) = momx_(:,ke) * rdens(:)
205 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_mom(:,ke,1,1), liftdelflx )
206 dveldxi(:,1,1) = ( lmesh%Escale(:,ke,1,1) * fx(:) + liftdelflx(:) - q(:) * ddensdxi(:,1) ) * rdens(:)
209 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_mom(:,ke,2,1), liftdelflx )
210 dveldxi(:,2,1) = ( lmesh%Escale(:,ke,2,2) * fy(:) + liftdelflx(:) - q(:) * ddensdxi(:,2) ) * rdens(:)
213 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_mom(:,ke,3,1), liftdelflx )
214 dveldxi(:,3,1) = ( lmesh%Escale(:,ke,3,3) * fz(:) + liftdelflx(:) - q(:) * ddensdxi(:,3) ) * rdens(:)
217 q(:) = momy_(:,ke) * rdens(:)
220 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_mom(:,ke,1,2), liftdelflx )
221 dveldxi(:,1,2) = ( lmesh%Escale(:,ke,1,1) * fx(:) + liftdelflx(:) - q(:) * ddensdxi(:,1) ) * rdens(:)
224 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_mom(:,ke,2,2), liftdelflx )
225 dveldxi(:,2,2) = ( lmesh%Escale(:,ke,2,2) * fy(:) + liftdelflx(:) - q(:) * ddensdxi(:,2) ) * rdens(:)
228 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_mom(:,ke,3,2), liftdelflx )
229 dveldxi(:,3,2) = ( lmesh%Escale(:,ke,3,3) * fz(:) + liftdelflx(:) - q(:) * ddensdxi(:,3) ) * rdens(:)
232 q(:) = momz_(:,ke) * rdens(:)
235 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_mom(:,ke,1,3), liftdelflx )
236 dveldxi(:,1,3) = ( lmesh%Escale(:,ke,1,1) * fx(:) + liftdelflx(:) - q(:) * ddensdxi(:,1) ) * rdens(:)
239 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_mom(:,ke,2,3), liftdelflx )
240 dveldxi(:,2,3) = ( lmesh%Escale(:,ke,2,2) * fy(:) + liftdelflx(:) - q(:) * ddensdxi(:,2) ) * rdens(:)
243 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_mom(:,ke,3,3), liftdelflx )
244 dveldxi(:,3,3) = ( lmesh%Escale(:,ke,3,3) * fz(:) + liftdelflx(:) - q(:) * ddensdxi(:,3) ) * rdens(:)
247 q(:) = rhot(:) * rdens(:)
250 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_rhot(:,ke,1), liftdelflx )
251 df1(:,ke) = ( lmesh%Escale(:,ke,1,1) * fx(:) + liftdelflx(:) - q(:) * ddensdxi(:,1) ) * rdens(:)
254 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_rhot(:,ke,2), liftdelflx )
255 df2(:,ke) = ( lmesh%Escale(:,ke,2,2) * fy(:) + liftdelflx(:) - q(:) * ddensdxi(:,2) ) * rdens(:)
258 call sparsemat_matmul( lift, lmesh%Fscale(:,ke) * del_flux_rhot(:,ke,3), liftdelflx )
259 df3(:,ke) = ( lmesh%Escale(:,ke,3,3) * fz(:) + liftdelflx(:) - q(:) * ddensdxi(:,3) ) * rdens(:)
263 s11(:) = dveldxi(:,1,1)
264 s12(:) = 0.5_rp * ( dveldxi(:,1,2) + dveldxi(:,2,1) )
265 s22(:) = dveldxi(:,2,2)
266 s23(:) = 0.5_rp * ( dveldxi(:,2,3) + dveldxi(:,3,2) )
267 s31(:) = 0.5_rp * ( dveldxi(:,1,3) + dveldxi(:,3,1) )
268 s33(:) = dveldxi(:,3,3)
278 skkovthree = ( s11(p) + s22(p) + s33(p) ) * oneoverthree
279 coef = 2.0_rp * nu(p,ke)
281 t11(p,ke) = dens(p) * ( coef * ( s11(p) - skkovthree ) )
282 t12(p,ke) = dens(p) * coef * s12(p)
283 t13(p,ke) = dens(p) * coef * s31(p)
285 t21(p,ke) = dens(p) * coef * s12(p)
286 t22(p,ke) = dens(p) * ( coef * ( s22(p) - skkovthree ) )
287 t23(p,ke) = dens(p) * coef * s23(p)
289 t31(p,ke) = dens(p) * coef * s31(p)
290 t32(p,ke) = dens(p) * coef * s23(p)
291 t33(p,ke) = dens(p) * ( coef * ( s33(p) - skkovthree ) )
294 df1(:,ke) = kh(:,ke) * df1(:,ke)
295 df2(:,ke) = kh(:,ke) * df2(:,ke)
296 df3(:,ke) = kh(:,ke) * df3(:,ke)