159599516SKenneth E. Jansen subroutine e3visc (g1yi, g2yi, g3yi, 259599516SKenneth E. Jansen & dxidx, 359599516SKenneth E. Jansen & rmu, rlm, rlm2mu, 459599516SKenneth E. Jansen & u1, u2, u3, 559599516SKenneth E. Jansen & ri, rmi, stiff, 659599516SKenneth E. Jansen & con, rlsli, compK, T) 759599516SKenneth E. Jansenc 859599516SKenneth E. Jansenc---------------------------------------------------------------------- 959599516SKenneth E. Jansenc 1059599516SKenneth E. Jansenc This routine calculates the contribution of viscous and heat fluxes 1159599516SKenneth E. Jansenc to both RHS and LHS. 1259599516SKenneth E. Jansenc 1359599516SKenneth E. Jansenc input: 1459599516SKenneth E. Jansenc g1yi (npro,nflow) : grad-y in direction 1 1559599516SKenneth E. Jansenc g2yi (npro,nflow) : grad-y in direction 2 1659599516SKenneth E. Jansenc g3yi (npro,nflow) : grad-y in direction 3 1759599516SKenneth E. Jansenc u1 (npro) : x1-velocity component 1859599516SKenneth E. Jansenc u2 (npro) : x2-velocity component 1959599516SKenneth E. Jansenc u3 (npro) : x3-velocity component 2059599516SKenneth E. Jansenc rmu (npro) : viscosity 2159599516SKenneth E. Jansenc rlm (npro) : Lambda 2259599516SKenneth E. Jansenc rlm2mu (npro) : Lambda + 2 Mu 2359599516SKenneth E. Jansenc con (npro) : Conductivity 2459599516SKenneth E. Jansenc cp (npro) : specific heat at constant pressure 2559599516SKenneth E. Jansenc rlsli (npro,6) : Resolved Reynold's stresses 2659599516SKenneth E. Jansenc output: 2759599516SKenneth E. Jansenc ri (npro,nflow*(nsd+1)) : partial residual 2859599516SKenneth E. Jansenc rmi (npro,nflow*(nsd+1)) : partial modified residual 2959599516SKenneth E. Jansenc stiff (npro,nsd*nflow,nsd*nflow) : stiffness matrix 3059599516SKenneth E. Jansenc compK (npro,10) : K_ij in (eq.134) A new ... III 3159599516SKenneth E. Jansenc 3259599516SKenneth E. Jansenc 3359599516SKenneth E. Jansenc Zdenek Johan, Summer 1990. (Modified from e2visc.f) 3459599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 3559599516SKenneth E. Jansenc Kenneth Jansen, Winter 1997 Primitive Variables 3659599516SKenneth E. Jansenc---------------------------------------------------------------------- 3759599516SKenneth E. Jansenc 3859599516SKenneth E. Jansen include "common.h" 3959599516SKenneth E. Jansenc 4059599516SKenneth E. Jansenc passed arrays 4159599516SKenneth E. Jansenc 4259599516SKenneth E. Jansen dimension g1yi(npro,nflow), g2yi(npro,nflow), 4359599516SKenneth E. Jansen & g3yi(npro,nflow), 4459599516SKenneth E. Jansen & Sclr(npro), dxidx(npro,nsd,nsd), 4559599516SKenneth E. Jansen & u1(npro), u2(npro), 4659599516SKenneth E. Jansen & u3(npro), rho(npro), 4759599516SKenneth E. Jansen & ri(npro,nflow*(nsd+1)), rmi(npro,nflow*(nsd+1)) 4859599516SKenneth E. Jansenc 4959599516SKenneth E. Jansenc 5059599516SKenneth E. Jansen dimension rmu(npro), rlm(npro), 5159599516SKenneth E. Jansen & rlm2mu(npro), con(npro), 5259599516SKenneth E. Jansen & stiff(npro,3*nflow,3*nflow), 5359599516SKenneth E. Jansen & rlsli(npro,6), compK(npro,10), 5459599516SKenneth E. Jansen & f1(npro), f2(npro), f3(npro), f4(npro), 5559599516SKenneth E. Jansen & f5(npro), f6(npro), T(npro), rk(npro) 5659599516SKenneth E. Jansen 5759599516SKenneth E. Jansen ttim(23) = ttim(23) - secs(0.0) 5859599516SKenneth E. Jansenc 5959599516SKenneth E. Jansenc... dynamic model is now being accounted for in getdiff.f 6059599516SKenneth E. Jansenc 6159599516SKenneth E. Jansenc 6259599516SKenneth E. Jansenc.... ---------------------> Diffusivity Matrix <------------------- 6359599516SKenneth E. Jansenc 6459599516SKenneth E. Jansen 6559599516SKenneth E. Jansen if (lhs .eq. 1) then 6659599516SKenneth E. Jansenc 6759599516SKenneth E. Jansenc.... K11 6859599516SKenneth E. Jansenc 6959599516SKenneth E. Jansen stiff(:, 2, 2) = rlm2mu 7059599516SKenneth E. Jansen stiff(:, 3, 3) = rmu 7159599516SKenneth E. Jansen stiff(:, 4, 4) = rmu 7259599516SKenneth E. Jansen stiff(:, 5, 2) = rlm2mu * u1 7359599516SKenneth E. Jansen stiff(:, 5, 3) = rmu * u2 7459599516SKenneth E. Jansen stiff(:, 5, 4) = rmu * u3 7559599516SKenneth E. Jansen stiff(:, 5, 5) = con 7659599516SKenneth E. Jansenc 7759599516SKenneth E. Jansenc.... K12 7859599516SKenneth E. Jansenc 7959599516SKenneth E. Jansen stiff(:, 2, 8) = rlm 8059599516SKenneth E. Jansen stiff(:, 3, 7) = rmu 8159599516SKenneth E. Jansen stiff(:, 5, 7) = rmu * u2 8259599516SKenneth E. Jansen stiff(:, 5, 8) = rlm * u1 8359599516SKenneth E. Jansenc 8459599516SKenneth E. Jansenc.... K13 8559599516SKenneth E. Jansenc 8659599516SKenneth E. Jansen stiff(:, 2,14) = rlm 8759599516SKenneth E. Jansen stiff(:, 4,12) = rmu 8859599516SKenneth E. Jansen stiff(:, 5,12) = rmu * u3 8959599516SKenneth E. Jansen stiff(:, 5,14) = rlm * u1 9059599516SKenneth E. Jansen 9159599516SKenneth E. Jansenc 9259599516SKenneth E. Jansenc.... K21 9359599516SKenneth E. Jansenc 9459599516SKenneth E. Jansen stiff(:, 7, 3) = rmu 9559599516SKenneth E. Jansen stiff(:, 8, 2) = rlm 9659599516SKenneth E. Jansen stiff(:,10, 2) = rlm * u2 9759599516SKenneth E. Jansen stiff(:,10, 3) = rmu * u1 9859599516SKenneth E. Jansen 9959599516SKenneth E. Jansenc 10059599516SKenneth E. Jansenc.... K22 10159599516SKenneth E. Jansenc 10259599516SKenneth E. Jansen stiff(:, 7, 7) = rmu 10359599516SKenneth E. Jansen stiff(:, 8, 8) = rlm2mu 10459599516SKenneth E. Jansen stiff(:, 9, 9) = rmu 10559599516SKenneth E. Jansen stiff(:,10, 7) = rmu * u1 10659599516SKenneth E. Jansen stiff(:,10, 8) = rlm2mu * u2 10759599516SKenneth E. Jansen stiff(:,10, 9) = rmu * u3 10859599516SKenneth E. Jansen stiff(:,10,10) = con 10959599516SKenneth E. Jansenc 11059599516SKenneth E. Jansenc.... K23 11159599516SKenneth E. Jansenc 11259599516SKenneth E. Jansen stiff(:, 8,14) = rlm 11359599516SKenneth E. Jansen stiff(:, 9,13) = rmu 11459599516SKenneth E. Jansen stiff(:,10,13) = rmu * u3 11559599516SKenneth E. Jansen stiff(:,10,14) = rlm * u2 11659599516SKenneth E. Jansenc 11759599516SKenneth E. Jansenc.... K31 11859599516SKenneth E. Jansenc 11959599516SKenneth E. Jansen stiff(:,12, 4) = rmu 12059599516SKenneth E. Jansen stiff(:,14, 2) = rlm 12159599516SKenneth E. Jansen stiff(:,15, 2) = rlm * u3 12259599516SKenneth E. Jansen stiff(:,15, 4) = rmu * u1 12359599516SKenneth E. Jansenc 12459599516SKenneth E. Jansenc.... K32 12559599516SKenneth E. Jansenc 12659599516SKenneth E. Jansen stiff(:,13, 9) = rmu 12759599516SKenneth E. Jansen stiff(:,14, 8) = rlm 12859599516SKenneth E. Jansen stiff(:,15, 8) = rlm * u3 12959599516SKenneth E. Jansen stiff(:,15, 9) = rmu * u2 13059599516SKenneth E. Jansenc 13159599516SKenneth E. Jansenc.... K33 13259599516SKenneth E. Jansenc 13359599516SKenneth E. Jansen stiff(:,12,12) = rmu 13459599516SKenneth E. Jansen stiff(:,13,13) = rmu 13559599516SKenneth E. Jansen stiff(:,14,14) = rlm2mu 13659599516SKenneth E. Jansen stiff(:,15,12) = rmu * u1 13759599516SKenneth E. Jansen stiff(:,15,13) = rmu * u2 13859599516SKenneth E. Jansen stiff(:,15,14) = rlm2mu * u3 13959599516SKenneth E. Jansen stiff(:,15,15) = con 14059599516SKenneth E. Jansen 14159599516SKenneth E. Jansen endif 14259599516SKenneth E. Jansen 14359599516SKenneth E. Jansen if (itau .ge. 10) then ! non-diag tau, buld compK 14459599516SKenneth E. Jansen 14559599516SKenneth E. Jansenc 14659599516SKenneth E. Jansenc.... calculate element factors 14759599516SKenneth E. Jansenc 14859599516SKenneth E. Jansen f1 = dxidx(:,1,1) * dxidx(:,1,1) + 14959599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,1) + 15059599516SKenneth E. Jansen & dxidx(:,3,1) * dxidx(:,3,1) 15159599516SKenneth E. Jansen f2 = dxidx(:,1,1) * dxidx(:,1,2) + 15259599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,2) + 15359599516SKenneth E. Jansen & dxidx(:,3,1) * dxidx(:,3,2) 15459599516SKenneth E. Jansen f3 = dxidx(:,1,2) * dxidx(:,1,2) + 15559599516SKenneth E. Jansen & dxidx(:,2,2) * dxidx(:,2,2) + 15659599516SKenneth E. Jansen & dxidx(:,3,2) * dxidx(:,3,2) 15759599516SKenneth E. Jansen f4 = dxidx(:,1,1) * dxidx(:,1,3) + 15859599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,3) + 15959599516SKenneth E. Jansen & dxidx(:,3,1) * dxidx(:,3,3) 16059599516SKenneth E. Jansen f5 = dxidx(:,1,2) * dxidx(:,1,3) + 16159599516SKenneth E. Jansen & dxidx(:,2,2) * dxidx(:,2,3) + 16259599516SKenneth E. Jansen & dxidx(:,3,2) * dxidx(:,3,3) 16359599516SKenneth E. Jansen f6 = dxidx(:,1,3) * dxidx(:,1,3) + 16459599516SKenneth E. Jansen & dxidx(:,2,3) * dxidx(:,2,3) + 16559599516SKenneth E. Jansen & dxidx(:,3,3) * dxidx(:,3,3) 16659599516SKenneth E. Jansenc 16759599516SKenneth E. Jansenc.... correction for tetrahedra (invariance w.r.t triangular coord) 16859599516SKenneth E. Jansenc 16959599516SKenneth E. Jansen if (lcsyst .eq. 1) then 17059599516SKenneth E. Jansen f1 = ( f1 + (dxidx(:,1,1) + 17159599516SKenneth E. Jansen & dxidx(:,2,1) + dxidx(:,3,1))**2 ) * pt39 17259599516SKenneth E. Jansen f2 = ( f2 + (dxidx(:,1,1) + 17359599516SKenneth E. Jansen & dxidx(:,2,1) + dxidx(:,3,1)) * 17459599516SKenneth E. Jansen & (dxidx(:,1,2) + 17559599516SKenneth E. Jansen & dxidx(:,2,2) + dxidx(:,3,2)) ) * pt39 17659599516SKenneth E. Jansen f3 = ( f3 + (dxidx(:,1,2) + 17759599516SKenneth E. Jansen & dxidx(:,2,2) + dxidx(:,3,2))**2 ) * pt39 17859599516SKenneth E. Jansen f4 = ( f4 + (dxidx(:,1,1) + 17959599516SKenneth E. Jansen & dxidx(:,2,1) + dxidx(:,3,1)) * 18059599516SKenneth E. Jansen & (dxidx(:,1,3) + 18159599516SKenneth E. Jansen & dxidx(:,2,3) + dxidx(:,3,3)) ) * pt39 18259599516SKenneth E. Jansen f5 = ( f5 + (dxidx(:,1,2) + 18359599516SKenneth E. Jansen & dxidx(:,2,2) + dxidx(:,3,2)) * 18459599516SKenneth E. Jansen & (dxidx(:,1,3) + 18559599516SKenneth E. Jansen & dxidx(:,2,3) + dxidx(:,3,3)) ) * pt39 18659599516SKenneth E. Jansen f6 = ( f6 + (dxidx(:,1,3) + 18759599516SKenneth E. Jansen & dxidx(:,2,3) + dxidx(:,3,3))**2 ) * pt39 18859599516SKenneth E. Jansenc 189f4d0b58bSKenneth E. Jansen ! flops = flops + 36*npro 19059599516SKenneth E. Jansen endif 19159599516SKenneth E. Jansenc 19259599516SKenneth E. Jansenc.... correction for wedges 19359599516SKenneth E. Jansenc 19459599516SKenneth E. Jansen if ((lcsyst .eq. 3) .or. (lcsyst .eq. 4)) then 19559599516SKenneth E. Jansen f1 = ( dxidx(:,1,1) * dxidx(:,1,1) + 19659599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,1) + 19759599516SKenneth E. Jansen & ( dxidx(:,1,1) + dxidx(:,2,1) )**2 ) * pt57 19859599516SKenneth E. Jansen & + dxidx(:,3,1) * dxidx(:,3,1) 19959599516SKenneth E. Jansen f2 = ( dxidx(:,1,1) * dxidx(:,1,2) + 20059599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,2) + 20159599516SKenneth E. Jansen & ( dxidx(:,1,1) + dxidx(:,2,1) ) * 20259599516SKenneth E. Jansen & ( dxidx(:,1,2) + dxidx(:,2,2) ) ) * pt57 20359599516SKenneth E. Jansen & + dxidx(:,3,1) * dxidx(:,3,2) 20459599516SKenneth E. Jansen f3 = ( dxidx(:,1,2) * dxidx(:,1,2) + 20559599516SKenneth E. Jansen & dxidx(:,2,2) * dxidx(:,2,2) + 20659599516SKenneth E. Jansen & ( dxidx(:,1,2) + dxidx(:,2,2) )**2 ) * pt57 20759599516SKenneth E. Jansen & + dxidx(:,3,2) * dxidx(:,3,2) 20859599516SKenneth E. Jansen f4 = ( dxidx(:,1,1) * dxidx(:,1,3) + 20959599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,3) + 21059599516SKenneth E. Jansen & ( dxidx(:,1,1) + dxidx(:,2,1) ) * 21159599516SKenneth E. Jansen & ( dxidx(:,1,3) + dxidx(:,2,3) ) ) * pt57 21259599516SKenneth E. Jansen & + dxidx(:,3,1) * dxidx(:,3,3) 21359599516SKenneth E. Jansen f5 = ( dxidx(:,1,2) * dxidx(:,1,3) + 21459599516SKenneth E. Jansen & dxidx(:,2,2) * dxidx(:,2,3) + 21559599516SKenneth E. Jansen & ( dxidx(:,1,2) + dxidx(:,2,2) ) * 21659599516SKenneth E. Jansen & ( dxidx(:,1,3) + dxidx(:,2,3) ) ) * pt57 21759599516SKenneth E. Jansen & + dxidx(:,3,2) * dxidx(:,3,3) 21859599516SKenneth E. Jansen f6 = ( dxidx(:,1,3) * dxidx(:,1,3) + 21959599516SKenneth E. Jansen & dxidx(:,2,3) * dxidx(:,2,3) + 22059599516SKenneth E. Jansen & ( dxidx(:,1,3) + dxidx(:,2,3) )**2 ) * pt57 22159599516SKenneth E. Jansen & + dxidx(:,3,3) * dxidx(:,3,3) 22259599516SKenneth E. Jansenc 223f4d0b58bSKenneth E. Jansen ! flops = flops + 51*npro 22459599516SKenneth E. Jansen endif 22559599516SKenneth E. Jansenc 22659599516SKenneth E. Jansenc.... calculate compact K matrix in local parent coordinates 22759599516SKenneth E. Jansenc.... equation 134 in "A new ... III" only w/ K^tilde_jj. Might need 22859599516SKenneth E. Jansenc.... complete Kij. 22959599516SKenneth E. Jansen 23059599516SKenneth E. Jansen compK(:, 1) = f1 * T * rlm2mu + f3 * T * rmu 23159599516SKenneth E. Jansen & + f6 * T * rmu 23259599516SKenneth E. Jansenc 23359599516SKenneth E. Jansen compK(:, 2) = f2 * T * (rlm + rmu) 23459599516SKenneth E. Jansen compK(:, 3) = f1 * T * rmu + f3 * T * rlm2mu 23559599516SKenneth E. Jansen & + f6 * T * rmu 23659599516SKenneth E. Jansenc 23759599516SKenneth E. Jansen compK(:, 4) = f4 * T * (rlm + rmu) 23859599516SKenneth E. Jansen compK(:, 5) = f5 * T * (rlm + rmu) 23959599516SKenneth E. Jansen compK(:, 6) = f1 * T * rmu + f3 * T * rmu 24059599516SKenneth E. Jansen & + f6 * T * rlm2mu 24159599516SKenneth E. Jansenc 24259599516SKenneth E. Jansen compK(:, 7) = f1 * T * rlm2mu * u1 + f2 * T * (rlm + rmu) * u2 24359599516SKenneth E. Jansen & + f3 * T * rmu * u1 + f4 * T * (rlm + rmu) * u3 24459599516SKenneth E. Jansen & + f6 * T * rmu * u1 24559599516SKenneth E. Jansen compK(:, 8) = f1 * T * rmu * u2 + f2 * T * (rlm + rmu) * u1 24659599516SKenneth E. Jansen & + f3 * T * rlm2mu * u2 + f5 * T * (rlm + rmu) * u3 24759599516SKenneth E. Jansen & + f6 * T * rmu * u2 24859599516SKenneth E. Jansen compK(:, 9) = f1 * T * rmu * u3 + f3 * T * rmu * u3 24959599516SKenneth E. Jansen & + f4 * T * (rlm + rmu) * u1 + f5 * T * (rlm + rmu) * u2 25059599516SKenneth E. Jansen & + f6 * T * rlm2mu * u3 25159599516SKenneth E. Jansen 25259599516SKenneth E. Jansen rk=pt5*(u1**2+u2**2+u3**2) 25359599516SKenneth E. Jansen 25459599516SKenneth E. Jansen compK(:,10) = f1 * T * (con * T + two * rmu * rk + (rlm + 25559599516SKenneth E. Jansen & rmu) * u1**2) + f2 * T * (rlm + rmu) * two * u1 * u2 25659599516SKenneth E. Jansen & + f3 * T * (con * T + two * rmu * rk + (rlm + rmu) * 25759599516SKenneth E. Jansen & u2**2) + f4 * T * (rlm + rmu) * two * u1 * u3 25859599516SKenneth E. Jansen & + f5 * T * (rlm + rmu) * two * u2 * u3 + f6 * T * (con 25959599516SKenneth E. Jansen & * T + two * rmu * rk + (rlm + rmu) * u3**2) 26059599516SKenneth E. Jansenc 26159599516SKenneth E. Jansenc.... flop count 26259599516SKenneth E. Jansenc 263f4d0b58bSKenneth E. Jansen ! flops = flops + 86*npro 26459599516SKenneth E. Jansenc 26559599516SKenneth E. Jansenc.... end of GLS 26659599516SKenneth E. Jansenc 26759599516SKenneth E. Jansen 26859599516SKenneth E. Jansen endif 26959599516SKenneth E. Jansenc 27059599516SKenneth E. Jansenc.... ---------------------------> RHS <----------------------------- 27159599516SKenneth E. Jansenc 27259599516SKenneth E. Jansenc.... compute diffusive fluxes and add them to ri and rmi 27359599516SKenneth E. Jansen 27459599516SKenneth E. Jansenc 27559599516SKenneth E. Jansenc.... diffusive flux in x1-direction 27659599516SKenneth E. Jansenc 27759599516SKenneth E. Jansenc rmi(:,1) = zero ! already initialized 27859599516SKenneth E. Jansen rmi(:,2) = rlm2mu * g1yi(:,2) 27959599516SKenneth E. Jansen & + rlm * g2yi(:,3) 28059599516SKenneth E. Jansen & + rlm * g3yi(:,4) 28159599516SKenneth E. Jansen & - rlsli(:,1) 28259599516SKenneth E. Jansen rmi(:,3) = rmu * g1yi(:,3) 28359599516SKenneth E. Jansen & + rmu * g2yi(:,2) 28459599516SKenneth E. Jansen & - rlsli(:,4) 28559599516SKenneth E. Jansen rmi(:,4) = rmu * g1yi(:,4) 28659599516SKenneth E. Jansen & + rmu * g3yi(:,2) 28759599516SKenneth E. Jansen & - rlsli(:,5) 28859599516SKenneth E. Jansen rmi(:,5) = rlm2mu * u1 * g1yi(:,2) + rmu * u2 * g1yi(:,3) 28959599516SKenneth E. Jansen & + rmu * u3 * g1yi(:,4) 29059599516SKenneth E. Jansen & + rmu * u2 * g2yi(:,2) + rlm * u1 * g2yi(:,3) 29159599516SKenneth E. Jansen & + rmu * u3 * g3yi(:,2) + rlm * u1 * g3yi(:,4) 29259599516SKenneth E. Jansen & + con * g1yi(:,5) 29359599516SKenneth E. Jansen 29459599516SKenneth E. Jansenc 29559599516SKenneth E. Jansen ri (:,2:5) = ri (:,2:5) + rmi(:,2:5) 29659599516SKenneth E. Jansenc rmi(:,2:5) = rmi(:,2:5) + qdi(:,2:5) 29759599516SKenneth E. Jansenc 298f4d0b58bSKenneth E. Jansenc! flops = flops + 74*npro 29959599516SKenneth E. Jansenc 30059599516SKenneth E. Jansenc.... diffusive flux in x2-direction 30159599516SKenneth E. Jansenc 30259599516SKenneth E. Jansenc rmi(:, 6) = zero 30359599516SKenneth E. Jansen rmi(:, 7) = rmu * g1yi(:,3) 30459599516SKenneth E. Jansen & + rmu * g2yi(:,2) 30559599516SKenneth E. Jansen & - rlsli(:,4) 30659599516SKenneth E. Jansen rmi(:, 8) = rlm * g1yi(:,2) 30759599516SKenneth E. Jansen & + rlm2mu * g2yi(:,3) 30859599516SKenneth E. Jansen & + rlm * g3yi(:,4) 30959599516SKenneth E. Jansen & - rlsli(:,2) 31059599516SKenneth E. Jansen rmi(:, 9) = rmu * g2yi(:,4) 31159599516SKenneth E. Jansen & + rmu * g3yi(:,3) 31259599516SKenneth E. Jansen & - rlsli(:,6) 31359599516SKenneth E. Jansen rmi(:,10) = rlm * u2 * g1yi(:,2) + rmu * u1 * g1yi(:,3) 31459599516SKenneth E. Jansen & + rmu * u1 * g2yi(:,2) + rlm2mu * u2 * g2yi(:,3) 31559599516SKenneth E. Jansen & + rmu * u3 * g2yi(:,4) 31659599516SKenneth E. Jansen & + rmu * u3 * g3yi(:,3) + rlm * u2 * g3yi(:,4) 31759599516SKenneth E. Jansen & + con * g2yi(:,5) 31859599516SKenneth E. Jansenc 31959599516SKenneth E. Jansen ri (:,7:10) = ri (:,7:10) + rmi(:,7:10) 32059599516SKenneth E. Jansenc rmi(:,7:10) = rmi(:,7:10) + qdi(:,2:5) 32159599516SKenneth E. Jansenc 322f4d0b58bSKenneth E. Jansenc! flops = flops + 74*npro 32359599516SKenneth E. Jansenc 32459599516SKenneth E. Jansenc.... diffusive flux in x3-direction 32559599516SKenneth E. Jansenc 32659599516SKenneth E. Jansenc rmi(:,11) = zero 32759599516SKenneth E. Jansen rmi(:,12) = rmu * g1yi(:,4) 32859599516SKenneth E. Jansen & + rmu * g3yi(:,2) 32959599516SKenneth E. Jansen & - rlsli(:,5) 33059599516SKenneth E. Jansen rmi(:,13) = rmu * g2yi(:,4) 33159599516SKenneth E. Jansen & + rmu * g3yi(:,3) 33259599516SKenneth E. Jansen & - rlsli(:,6) 33359599516SKenneth E. Jansen rmi(:,14) = rlm * g1yi(:,2) 33459599516SKenneth E. Jansen & + rlm * g2yi(:,3) 33559599516SKenneth E. Jansen & + rlm2mu * g3yi(:,4) 33659599516SKenneth E. Jansen & - rlsli(:,3) 33759599516SKenneth E. Jansen rmi(:,15) = rlm * u3 * g1yi(:,2) + rmu * u1 * g1yi(:,4) 33859599516SKenneth E. Jansen & + rlm * u3 * g2yi(:,3) + rmu * u2 * g2yi(:,4) 33959599516SKenneth E. Jansen & + rmu * u1 * g3yi(:,2) + rmu * u2 * g3yi(:,3) 34059599516SKenneth E. Jansen & + rlm2mu * u3 * g3yi(:,4) 34159599516SKenneth E. Jansen & + con * g3yi(:,5) 34259599516SKenneth E. Jansenc 34359599516SKenneth E. Jansen ri (:,12:15) = ri (:,12:15) + rmi(:,12:15) 34459599516SKenneth E. Jansenc 345f4d0b58bSKenneth E. Jansenc! flops = flops + 74*npro 34659599516SKenneth E. Jansenc 34759599516SKenneth E. Jansenc stiff for preconditioner has been eliminated 34859599516SKenneth E. Jansenc all preconditioner stuff is in e3bdg.f 34959599516SKenneth E. Jansenc 35059599516SKenneth E. Jansen 35159599516SKenneth E. Jansen ttim(23) = ttim(23) + secs(0.0) 35259599516SKenneth E. Jansen 35359599516SKenneth E. Jansenc 35459599516SKenneth E. Jansenc.... return 35559599516SKenneth E. Jansenc 35659599516SKenneth E. Jansen return 35759599516SKenneth E. Jansen end 35859599516SKenneth E. Jansenc 35959599516SKenneth E. Jansenc 36059599516SKenneth E. Jansenc 36159599516SKenneth E. Jansen subroutine e3viscSclr (g1yti, g2yti, g3yti, 36259599516SKenneth E. Jansen & rmu, Sclr, rho, 36359599516SKenneth E. Jansen & rti, rmti, stifft) 36459599516SKenneth E. Jansenc 36559599516SKenneth E. Jansenc---------------------------------------------------------------------- 36659599516SKenneth E. Jansenc 36759599516SKenneth E. Jansenc This routine calculates the contribution of viscous and heat fluxes 36859599516SKenneth E. Jansenc to both RHS and LHS. 36959599516SKenneth E. Jansenc 37059599516SKenneth E. Jansenc input: 37159599516SKenneth E. Jansenc g1yti (npro) : grad-y in direction 1 37259599516SKenneth E. Jansenc g2yti (npro) : grad-y in direction 2 37359599516SKenneth E. Jansenc g3yti (npro) : grad-y in direction 3 37459599516SKenneth E. Jansenc rmu (npro) : viscosity 37559599516SKenneth E. Jansenc Sclr (npro) : scalar variable 37659599516SKenneth E. Jansenc 37759599516SKenneth E. Jansenc output: 37859599516SKenneth E. Jansenc rti (npro,nsd+1) : partial residual 37959599516SKenneth E. Jansenc rmti (npro,nsd+1) : partial modified residual 38059599516SKenneth E. Jansenc stifft (npro,nsd,nsd) : stiffness matrix 38159599516SKenneth E. Jansenc 38259599516SKenneth E. Jansenc 38359599516SKenneth E. Jansenc 38459599516SKenneth E. Jansenc Zdenek Johan, Summer 1990. (Modified from e2visc.f) 38559599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 38659599516SKenneth E. Jansenc Kenneth Jansen, Winter 1997 Primitive Variables 38759599516SKenneth E. Jansenc---------------------------------------------------------------------- 38859599516SKenneth E. Jansenc 38959599516SKenneth E. Jansen use turbSA ! for saSigma 39059599516SKenneth E. Jansen include "common.h" 39159599516SKenneth E. Jansenc 39259599516SKenneth E. Jansenc passed arrays 39359599516SKenneth E. Jansenc 39459599516SKenneth E. Jansen dimension g1yti(npro), g2yti(npro), 39559599516SKenneth E. Jansen & g3yti(npro), rmu(npro), 39659599516SKenneth E. Jansen & Sclr(npro), rho(npro), 39759599516SKenneth E. Jansen & rti(npro,nsd+1), rmti(npro,nsd+1), 39859599516SKenneth E. Jansen & stifft(npro,3,3) 39959599516SKenneth E. Jansen 40059599516SKenneth E. Jansen ttim(23) = ttim(23) - tmr() 40159599516SKenneth E. Jansen 40259599516SKenneth E. Jansen if ((ilset.ne.zero) .and. (isclr.lt.3)) return 40359599516SKenneth E. Jansenc 40459599516SKenneth E. Jansenc.... ---------------------------> RHS <----------------------------- 40559599516SKenneth E. Jansenc 40659599516SKenneth E. Jansenc.... ---------------------> Diffusivity Matrix <------------------- 40759599516SKenneth E. Jansenc 40859599516SKenneth E. Jansenc if (lhs .eq. 1) then 40959599516SKenneth E. Jansen 41059599516SKenneth E. Jansen stifft = zero 41159599516SKenneth E. Jansenc 41259599516SKenneth E. Jansenc.... K11 41359599516SKenneth E. Jansenc 41459599516SKenneth E. Jansen stifft(:,1,1)=rmu 41559599516SKenneth E. Jansen if (iRANS .lt. 0) then 416*779e4b51SKenneth E. Jansen stifft(:,1,1)=saSigmaInv*((rmu/rho)+max(zero,Sclr)) 417*779e4b51SKenneth E. Jansen!Sclr is nu_til not mu and thus nu+nu_til is the total diffusion 41859599516SKenneth E. Jansen endif 41959599516SKenneth E. Jansenc 42059599516SKenneth E. Jansenc.... K22 42159599516SKenneth E. Jansenc 42259599516SKenneth E. Jansen stifft(:,2,2)=stifft(:,1,1) 42359599516SKenneth E. Jansenc 42459599516SKenneth E. Jansenc.... K33 42559599516SKenneth E. Jansenc 42659599516SKenneth E. Jansen stifft(:,3,3)=stifft(:,1,1) 42759599516SKenneth E. Jansen 42859599516SKenneth E. Jansenc endif 42959599516SKenneth E. Jansenc 43059599516SKenneth E. Jansenc.... ---------------------------> RHS <----------------------------- 43159599516SKenneth E. Jansenc 43259599516SKenneth E. Jansenc.... compute diffusive fluxes and add them to ri and rmi 43359599516SKenneth E. Jansenc 43459599516SKenneth E. Jansenc.... diffusive fluxes 43559599516SKenneth E. Jansenc 43659599516SKenneth E. Jansen rmti(:,1) = stifft(:,1,1) * g1yti(:) 43759599516SKenneth E. Jansen rmti(:,2) = stifft(:,2,2) * g2yti(:) 43859599516SKenneth E. Jansen rmti(:,3) = stifft(:,3,3) * g3yti(:) 43959599516SKenneth E. Jansen 44059599516SKenneth E. Jansen rti (:,:) = rti (:,:) + rmti(:,:) 44159599516SKenneth E. Jansenc rmi(:,2:5) = rmi(:,2:5) + qdi(:,2:5) 44259599516SKenneth E. Jansenc 443f4d0b58bSKenneth E. Jansenc! flops = flops + 74*npro 44459599516SKenneth E. Jansenc 44559599516SKenneth E. Jansen ttim(23) = ttim(23) + tmr() 44659599516SKenneth E. Jansen 44759599516SKenneth E. Jansenc 44859599516SKenneth E. Jansenc.... return 44959599516SKenneth E. Jansenc 45059599516SKenneth E. Jansen return 45159599516SKenneth E. Jansen end 452