1*59599516SKenneth E. Jansen subroutine e3visc (g1yi, g2yi, g3yi, 2*59599516SKenneth E. Jansen & dxidx, 3*59599516SKenneth E. Jansen & rmu, rlm, rlm2mu, 4*59599516SKenneth E. Jansen & u1, u2, u3, 5*59599516SKenneth E. Jansen & ri, rmi, stiff, 6*59599516SKenneth E. Jansen & con, rlsli, compK, T) 7*59599516SKenneth E. Jansenc 8*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 9*59599516SKenneth E. Jansenc 10*59599516SKenneth E. Jansenc This routine calculates the contribution of viscous and heat fluxes 11*59599516SKenneth E. Jansenc to both RHS and LHS. 12*59599516SKenneth E. Jansenc 13*59599516SKenneth E. Jansenc input: 14*59599516SKenneth E. Jansenc g1yi (npro,nflow) : grad-y in direction 1 15*59599516SKenneth E. Jansenc g2yi (npro,nflow) : grad-y in direction 2 16*59599516SKenneth E. Jansenc g3yi (npro,nflow) : grad-y in direction 3 17*59599516SKenneth E. Jansenc u1 (npro) : x1-velocity component 18*59599516SKenneth E. Jansenc u2 (npro) : x2-velocity component 19*59599516SKenneth E. Jansenc u3 (npro) : x3-velocity component 20*59599516SKenneth E. Jansenc rmu (npro) : viscosity 21*59599516SKenneth E. Jansenc rlm (npro) : Lambda 22*59599516SKenneth E. Jansenc rlm2mu (npro) : Lambda + 2 Mu 23*59599516SKenneth E. Jansenc con (npro) : Conductivity 24*59599516SKenneth E. Jansenc cp (npro) : specific heat at constant pressure 25*59599516SKenneth E. Jansenc rlsli (npro,6) : Resolved Reynold's stresses 26*59599516SKenneth E. Jansenc output: 27*59599516SKenneth E. Jansenc ri (npro,nflow*(nsd+1)) : partial residual 28*59599516SKenneth E. Jansenc rmi (npro,nflow*(nsd+1)) : partial modified residual 29*59599516SKenneth E. Jansenc stiff (npro,nsd*nflow,nsd*nflow) : stiffness matrix 30*59599516SKenneth E. Jansenc compK (npro,10) : K_ij in (eq.134) A new ... III 31*59599516SKenneth E. Jansenc 32*59599516SKenneth E. Jansenc 33*59599516SKenneth E. Jansenc Zdenek Johan, Summer 1990. (Modified from e2visc.f) 34*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 35*59599516SKenneth E. Jansenc Kenneth Jansen, Winter 1997 Primitive Variables 36*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 37*59599516SKenneth E. Jansenc 38*59599516SKenneth E. Jansen include "common.h" 39*59599516SKenneth E. Jansenc 40*59599516SKenneth E. Jansenc passed arrays 41*59599516SKenneth E. Jansenc 42*59599516SKenneth E. Jansen dimension g1yi(npro,nflow), g2yi(npro,nflow), 43*59599516SKenneth E. Jansen & g3yi(npro,nflow), 44*59599516SKenneth E. Jansen & Sclr(npro), dxidx(npro,nsd,nsd), 45*59599516SKenneth E. Jansen & u1(npro), u2(npro), 46*59599516SKenneth E. Jansen & u3(npro), rho(npro), 47*59599516SKenneth E. Jansen & ri(npro,nflow*(nsd+1)), rmi(npro,nflow*(nsd+1)) 48*59599516SKenneth E. Jansenc 49*59599516SKenneth E. Jansenc 50*59599516SKenneth E. Jansen dimension rmu(npro), rlm(npro), 51*59599516SKenneth E. Jansen & rlm2mu(npro), con(npro), 52*59599516SKenneth E. Jansen & stiff(npro,3*nflow,3*nflow), 53*59599516SKenneth E. Jansen & rlsli(npro,6), compK(npro,10), 54*59599516SKenneth E. Jansen & f1(npro), f2(npro), f3(npro), f4(npro), 55*59599516SKenneth E. Jansen & f5(npro), f6(npro), T(npro), rk(npro) 56*59599516SKenneth E. Jansen 57*59599516SKenneth E. Jansen ttim(23) = ttim(23) - secs(0.0) 58*59599516SKenneth E. Jansenc 59*59599516SKenneth E. Jansenc... dynamic model is now being accounted for in getdiff.f 60*59599516SKenneth E. Jansenc 61*59599516SKenneth E. Jansenc 62*59599516SKenneth E. Jansenc.... ---------------------> Diffusivity Matrix <------------------- 63*59599516SKenneth E. Jansenc 64*59599516SKenneth E. Jansen 65*59599516SKenneth E. Jansen if (lhs .eq. 1) then 66*59599516SKenneth E. Jansenc 67*59599516SKenneth E. Jansenc.... K11 68*59599516SKenneth E. Jansenc 69*59599516SKenneth E. Jansen stiff(:, 2, 2) = rlm2mu 70*59599516SKenneth E. Jansen stiff(:, 3, 3) = rmu 71*59599516SKenneth E. Jansen stiff(:, 4, 4) = rmu 72*59599516SKenneth E. Jansen stiff(:, 5, 2) = rlm2mu * u1 73*59599516SKenneth E. Jansen stiff(:, 5, 3) = rmu * u2 74*59599516SKenneth E. Jansen stiff(:, 5, 4) = rmu * u3 75*59599516SKenneth E. Jansen stiff(:, 5, 5) = con 76*59599516SKenneth E. Jansenc 77*59599516SKenneth E. Jansenc.... K12 78*59599516SKenneth E. Jansenc 79*59599516SKenneth E. Jansen stiff(:, 2, 8) = rlm 80*59599516SKenneth E. Jansen stiff(:, 3, 7) = rmu 81*59599516SKenneth E. Jansen stiff(:, 5, 7) = rmu * u2 82*59599516SKenneth E. Jansen stiff(:, 5, 8) = rlm * u1 83*59599516SKenneth E. Jansenc 84*59599516SKenneth E. Jansenc.... K13 85*59599516SKenneth E. Jansenc 86*59599516SKenneth E. Jansen stiff(:, 2,14) = rlm 87*59599516SKenneth E. Jansen stiff(:, 4,12) = rmu 88*59599516SKenneth E. Jansen stiff(:, 5,12) = rmu * u3 89*59599516SKenneth E. Jansen stiff(:, 5,14) = rlm * u1 90*59599516SKenneth E. Jansen 91*59599516SKenneth E. Jansenc 92*59599516SKenneth E. Jansenc.... K21 93*59599516SKenneth E. Jansenc 94*59599516SKenneth E. Jansen stiff(:, 7, 3) = rmu 95*59599516SKenneth E. Jansen stiff(:, 8, 2) = rlm 96*59599516SKenneth E. Jansen stiff(:,10, 2) = rlm * u2 97*59599516SKenneth E. Jansen stiff(:,10, 3) = rmu * u1 98*59599516SKenneth E. Jansen 99*59599516SKenneth E. Jansenc 100*59599516SKenneth E. Jansenc.... K22 101*59599516SKenneth E. Jansenc 102*59599516SKenneth E. Jansen stiff(:, 7, 7) = rmu 103*59599516SKenneth E. Jansen stiff(:, 8, 8) = rlm2mu 104*59599516SKenneth E. Jansen stiff(:, 9, 9) = rmu 105*59599516SKenneth E. Jansen stiff(:,10, 7) = rmu * u1 106*59599516SKenneth E. Jansen stiff(:,10, 8) = rlm2mu * u2 107*59599516SKenneth E. Jansen stiff(:,10, 9) = rmu * u3 108*59599516SKenneth E. Jansen stiff(:,10,10) = con 109*59599516SKenneth E. Jansenc 110*59599516SKenneth E. Jansenc.... K23 111*59599516SKenneth E. Jansenc 112*59599516SKenneth E. Jansen stiff(:, 8,14) = rlm 113*59599516SKenneth E. Jansen stiff(:, 9,13) = rmu 114*59599516SKenneth E. Jansen stiff(:,10,13) = rmu * u3 115*59599516SKenneth E. Jansen stiff(:,10,14) = rlm * u2 116*59599516SKenneth E. Jansenc 117*59599516SKenneth E. Jansenc.... K31 118*59599516SKenneth E. Jansenc 119*59599516SKenneth E. Jansen stiff(:,12, 4) = rmu 120*59599516SKenneth E. Jansen stiff(:,14, 2) = rlm 121*59599516SKenneth E. Jansen stiff(:,15, 2) = rlm * u3 122*59599516SKenneth E. Jansen stiff(:,15, 4) = rmu * u1 123*59599516SKenneth E. Jansenc 124*59599516SKenneth E. Jansenc.... K32 125*59599516SKenneth E. Jansenc 126*59599516SKenneth E. Jansen stiff(:,13, 9) = rmu 127*59599516SKenneth E. Jansen stiff(:,14, 8) = rlm 128*59599516SKenneth E. Jansen stiff(:,15, 8) = rlm * u3 129*59599516SKenneth E. Jansen stiff(:,15, 9) = rmu * u2 130*59599516SKenneth E. Jansenc 131*59599516SKenneth E. Jansenc.... K33 132*59599516SKenneth E. Jansenc 133*59599516SKenneth E. Jansen stiff(:,12,12) = rmu 134*59599516SKenneth E. Jansen stiff(:,13,13) = rmu 135*59599516SKenneth E. Jansen stiff(:,14,14) = rlm2mu 136*59599516SKenneth E. Jansen stiff(:,15,12) = rmu * u1 137*59599516SKenneth E. Jansen stiff(:,15,13) = rmu * u2 138*59599516SKenneth E. Jansen stiff(:,15,14) = rlm2mu * u3 139*59599516SKenneth E. Jansen stiff(:,15,15) = con 140*59599516SKenneth E. Jansen 141*59599516SKenneth E. Jansen endif 142*59599516SKenneth E. Jansen 143*59599516SKenneth E. Jansen if (itau .ge. 10) then ! non-diag tau, buld compK 144*59599516SKenneth E. Jansen 145*59599516SKenneth E. Jansenc 146*59599516SKenneth E. Jansenc.... calculate element factors 147*59599516SKenneth E. Jansenc 148*59599516SKenneth E. Jansen f1 = dxidx(:,1,1) * dxidx(:,1,1) + 149*59599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,1) + 150*59599516SKenneth E. Jansen & dxidx(:,3,1) * dxidx(:,3,1) 151*59599516SKenneth E. Jansen f2 = dxidx(:,1,1) * dxidx(:,1,2) + 152*59599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,2) + 153*59599516SKenneth E. Jansen & dxidx(:,3,1) * dxidx(:,3,2) 154*59599516SKenneth E. Jansen f3 = dxidx(:,1,2) * dxidx(:,1,2) + 155*59599516SKenneth E. Jansen & dxidx(:,2,2) * dxidx(:,2,2) + 156*59599516SKenneth E. Jansen & dxidx(:,3,2) * dxidx(:,3,2) 157*59599516SKenneth E. Jansen f4 = dxidx(:,1,1) * dxidx(:,1,3) + 158*59599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,3) + 159*59599516SKenneth E. Jansen & dxidx(:,3,1) * dxidx(:,3,3) 160*59599516SKenneth E. Jansen f5 = dxidx(:,1,2) * dxidx(:,1,3) + 161*59599516SKenneth E. Jansen & dxidx(:,2,2) * dxidx(:,2,3) + 162*59599516SKenneth E. Jansen & dxidx(:,3,2) * dxidx(:,3,3) 163*59599516SKenneth E. Jansen f6 = dxidx(:,1,3) * dxidx(:,1,3) + 164*59599516SKenneth E. Jansen & dxidx(:,2,3) * dxidx(:,2,3) + 165*59599516SKenneth E. Jansen & dxidx(:,3,3) * dxidx(:,3,3) 166*59599516SKenneth E. Jansenc 167*59599516SKenneth E. Jansenc.... correction for tetrahedra (invariance w.r.t triangular coord) 168*59599516SKenneth E. Jansenc 169*59599516SKenneth E. Jansen if (lcsyst .eq. 1) then 170*59599516SKenneth E. Jansen f1 = ( f1 + (dxidx(:,1,1) + 171*59599516SKenneth E. Jansen & dxidx(:,2,1) + dxidx(:,3,1))**2 ) * pt39 172*59599516SKenneth E. Jansen f2 = ( f2 + (dxidx(:,1,1) + 173*59599516SKenneth E. Jansen & dxidx(:,2,1) + dxidx(:,3,1)) * 174*59599516SKenneth E. Jansen & (dxidx(:,1,2) + 175*59599516SKenneth E. Jansen & dxidx(:,2,2) + dxidx(:,3,2)) ) * pt39 176*59599516SKenneth E. Jansen f3 = ( f3 + (dxidx(:,1,2) + 177*59599516SKenneth E. Jansen & dxidx(:,2,2) + dxidx(:,3,2))**2 ) * pt39 178*59599516SKenneth E. Jansen f4 = ( f4 + (dxidx(:,1,1) + 179*59599516SKenneth E. Jansen & dxidx(:,2,1) + dxidx(:,3,1)) * 180*59599516SKenneth E. Jansen & (dxidx(:,1,3) + 181*59599516SKenneth E. Jansen & dxidx(:,2,3) + dxidx(:,3,3)) ) * pt39 182*59599516SKenneth E. Jansen f5 = ( f5 + (dxidx(:,1,2) + 183*59599516SKenneth E. Jansen & dxidx(:,2,2) + dxidx(:,3,2)) * 184*59599516SKenneth E. Jansen & (dxidx(:,1,3) + 185*59599516SKenneth E. Jansen & dxidx(:,2,3) + dxidx(:,3,3)) ) * pt39 186*59599516SKenneth E. Jansen f6 = ( f6 + (dxidx(:,1,3) + 187*59599516SKenneth E. Jansen & dxidx(:,2,3) + dxidx(:,3,3))**2 ) * pt39 188*59599516SKenneth E. Jansenc 189*59599516SKenneth E. Jansen flops = flops + 36*npro 190*59599516SKenneth E. Jansen endif 191*59599516SKenneth E. Jansenc 192*59599516SKenneth E. Jansenc.... correction for wedges 193*59599516SKenneth E. Jansenc 194*59599516SKenneth E. Jansen if ((lcsyst .eq. 3) .or. (lcsyst .eq. 4)) then 195*59599516SKenneth E. Jansen f1 = ( dxidx(:,1,1) * dxidx(:,1,1) + 196*59599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,1) + 197*59599516SKenneth E. Jansen & ( dxidx(:,1,1) + dxidx(:,2,1) )**2 ) * pt57 198*59599516SKenneth E. Jansen & + dxidx(:,3,1) * dxidx(:,3,1) 199*59599516SKenneth E. Jansen f2 = ( dxidx(:,1,1) * dxidx(:,1,2) + 200*59599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,2) + 201*59599516SKenneth E. Jansen & ( dxidx(:,1,1) + dxidx(:,2,1) ) * 202*59599516SKenneth E. Jansen & ( dxidx(:,1,2) + dxidx(:,2,2) ) ) * pt57 203*59599516SKenneth E. Jansen & + dxidx(:,3,1) * dxidx(:,3,2) 204*59599516SKenneth E. Jansen f3 = ( dxidx(:,1,2) * dxidx(:,1,2) + 205*59599516SKenneth E. Jansen & dxidx(:,2,2) * dxidx(:,2,2) + 206*59599516SKenneth E. Jansen & ( dxidx(:,1,2) + dxidx(:,2,2) )**2 ) * pt57 207*59599516SKenneth E. Jansen & + dxidx(:,3,2) * dxidx(:,3,2) 208*59599516SKenneth E. Jansen f4 = ( dxidx(:,1,1) * dxidx(:,1,3) + 209*59599516SKenneth E. Jansen & dxidx(:,2,1) * dxidx(:,2,3) + 210*59599516SKenneth E. Jansen & ( dxidx(:,1,1) + dxidx(:,2,1) ) * 211*59599516SKenneth E. Jansen & ( dxidx(:,1,3) + dxidx(:,2,3) ) ) * pt57 212*59599516SKenneth E. Jansen & + dxidx(:,3,1) * dxidx(:,3,3) 213*59599516SKenneth E. Jansen f5 = ( dxidx(:,1,2) * dxidx(:,1,3) + 214*59599516SKenneth E. Jansen & dxidx(:,2,2) * dxidx(:,2,3) + 215*59599516SKenneth E. Jansen & ( dxidx(:,1,2) + dxidx(:,2,2) ) * 216*59599516SKenneth E. Jansen & ( dxidx(:,1,3) + dxidx(:,2,3) ) ) * pt57 217*59599516SKenneth E. Jansen & + dxidx(:,3,2) * dxidx(:,3,3) 218*59599516SKenneth E. Jansen f6 = ( dxidx(:,1,3) * dxidx(:,1,3) + 219*59599516SKenneth E. Jansen & dxidx(:,2,3) * dxidx(:,2,3) + 220*59599516SKenneth E. Jansen & ( dxidx(:,1,3) + dxidx(:,2,3) )**2 ) * pt57 221*59599516SKenneth E. Jansen & + dxidx(:,3,3) * dxidx(:,3,3) 222*59599516SKenneth E. Jansenc 223*59599516SKenneth E. Jansen flops = flops + 51*npro 224*59599516SKenneth E. Jansen endif 225*59599516SKenneth E. Jansenc 226*59599516SKenneth E. Jansenc.... calculate compact K matrix in local parent coordinates 227*59599516SKenneth E. Jansenc.... equation 134 in "A new ... III" only w/ K^tilde_jj. Might need 228*59599516SKenneth E. Jansenc.... complete Kij. 229*59599516SKenneth E. Jansen 230*59599516SKenneth E. Jansen compK(:, 1) = f1 * T * rlm2mu + f3 * T * rmu 231*59599516SKenneth E. Jansen & + f6 * T * rmu 232*59599516SKenneth E. Jansenc 233*59599516SKenneth E. Jansen compK(:, 2) = f2 * T * (rlm + rmu) 234*59599516SKenneth E. Jansen compK(:, 3) = f1 * T * rmu + f3 * T * rlm2mu 235*59599516SKenneth E. Jansen & + f6 * T * rmu 236*59599516SKenneth E. Jansenc 237*59599516SKenneth E. Jansen compK(:, 4) = f4 * T * (rlm + rmu) 238*59599516SKenneth E. Jansen compK(:, 5) = f5 * T * (rlm + rmu) 239*59599516SKenneth E. Jansen compK(:, 6) = f1 * T * rmu + f3 * T * rmu 240*59599516SKenneth E. Jansen & + f6 * T * rlm2mu 241*59599516SKenneth E. Jansenc 242*59599516SKenneth E. Jansen compK(:, 7) = f1 * T * rlm2mu * u1 + f2 * T * (rlm + rmu) * u2 243*59599516SKenneth E. Jansen & + f3 * T * rmu * u1 + f4 * T * (rlm + rmu) * u3 244*59599516SKenneth E. Jansen & + f6 * T * rmu * u1 245*59599516SKenneth E. Jansen compK(:, 8) = f1 * T * rmu * u2 + f2 * T * (rlm + rmu) * u1 246*59599516SKenneth E. Jansen & + f3 * T * rlm2mu * u2 + f5 * T * (rlm + rmu) * u3 247*59599516SKenneth E. Jansen & + f6 * T * rmu * u2 248*59599516SKenneth E. Jansen compK(:, 9) = f1 * T * rmu * u3 + f3 * T * rmu * u3 249*59599516SKenneth E. Jansen & + f4 * T * (rlm + rmu) * u1 + f5 * T * (rlm + rmu) * u2 250*59599516SKenneth E. Jansen & + f6 * T * rlm2mu * u3 251*59599516SKenneth E. Jansen 252*59599516SKenneth E. Jansen rk=pt5*(u1**2+u2**2+u3**2) 253*59599516SKenneth E. Jansen 254*59599516SKenneth E. Jansen compK(:,10) = f1 * T * (con * T + two * rmu * rk + (rlm + 255*59599516SKenneth E. Jansen & rmu) * u1**2) + f2 * T * (rlm + rmu) * two * u1 * u2 256*59599516SKenneth E. Jansen & + f3 * T * (con * T + two * rmu * rk + (rlm + rmu) * 257*59599516SKenneth E. Jansen & u2**2) + f4 * T * (rlm + rmu) * two * u1 * u3 258*59599516SKenneth E. Jansen & + f5 * T * (rlm + rmu) * two * u2 * u3 + f6 * T * (con 259*59599516SKenneth E. Jansen & * T + two * rmu * rk + (rlm + rmu) * u3**2) 260*59599516SKenneth E. Jansenc 261*59599516SKenneth E. Jansenc.... flop count 262*59599516SKenneth E. Jansenc 263*59599516SKenneth E. Jansen flops = flops + 86*npro 264*59599516SKenneth E. Jansenc 265*59599516SKenneth E. Jansenc.... end of GLS 266*59599516SKenneth E. Jansenc 267*59599516SKenneth E. Jansen 268*59599516SKenneth E. Jansen endif 269*59599516SKenneth E. Jansenc 270*59599516SKenneth E. Jansenc.... ---------------------------> RHS <----------------------------- 271*59599516SKenneth E. Jansenc 272*59599516SKenneth E. Jansenc.... compute diffusive fluxes and add them to ri and rmi 273*59599516SKenneth E. Jansen 274*59599516SKenneth E. Jansenc 275*59599516SKenneth E. Jansenc.... diffusive flux in x1-direction 276*59599516SKenneth E. Jansenc 277*59599516SKenneth E. Jansenc rmi(:,1) = zero ! already initialized 278*59599516SKenneth E. Jansen rmi(:,2) = rlm2mu * g1yi(:,2) 279*59599516SKenneth E. Jansen & + rlm * g2yi(:,3) 280*59599516SKenneth E. Jansen & + rlm * g3yi(:,4) 281*59599516SKenneth E. Jansen & - rlsli(:,1) 282*59599516SKenneth E. Jansen rmi(:,3) = rmu * g1yi(:,3) 283*59599516SKenneth E. Jansen & + rmu * g2yi(:,2) 284*59599516SKenneth E. Jansen & - rlsli(:,4) 285*59599516SKenneth E. Jansen rmi(:,4) = rmu * g1yi(:,4) 286*59599516SKenneth E. Jansen & + rmu * g3yi(:,2) 287*59599516SKenneth E. Jansen & - rlsli(:,5) 288*59599516SKenneth E. Jansen rmi(:,5) = rlm2mu * u1 * g1yi(:,2) + rmu * u2 * g1yi(:,3) 289*59599516SKenneth E. Jansen & + rmu * u3 * g1yi(:,4) 290*59599516SKenneth E. Jansen & + rmu * u2 * g2yi(:,2) + rlm * u1 * g2yi(:,3) 291*59599516SKenneth E. Jansen & + rmu * u3 * g3yi(:,2) + rlm * u1 * g3yi(:,4) 292*59599516SKenneth E. Jansen & + con * g1yi(:,5) 293*59599516SKenneth E. Jansen 294*59599516SKenneth E. Jansenc 295*59599516SKenneth E. Jansen ri (:,2:5) = ri (:,2:5) + rmi(:,2:5) 296*59599516SKenneth E. Jansenc rmi(:,2:5) = rmi(:,2:5) + qdi(:,2:5) 297*59599516SKenneth E. Jansenc 298*59599516SKenneth E. Jansenc flops = flops + 74*npro 299*59599516SKenneth E. Jansenc 300*59599516SKenneth E. Jansenc.... diffusive flux in x2-direction 301*59599516SKenneth E. Jansenc 302*59599516SKenneth E. Jansenc rmi(:, 6) = zero 303*59599516SKenneth E. Jansen rmi(:, 7) = rmu * g1yi(:,3) 304*59599516SKenneth E. Jansen & + rmu * g2yi(:,2) 305*59599516SKenneth E. Jansen & - rlsli(:,4) 306*59599516SKenneth E. Jansen rmi(:, 8) = rlm * g1yi(:,2) 307*59599516SKenneth E. Jansen & + rlm2mu * g2yi(:,3) 308*59599516SKenneth E. Jansen & + rlm * g3yi(:,4) 309*59599516SKenneth E. Jansen & - rlsli(:,2) 310*59599516SKenneth E. Jansen rmi(:, 9) = rmu * g2yi(:,4) 311*59599516SKenneth E. Jansen & + rmu * g3yi(:,3) 312*59599516SKenneth E. Jansen & - rlsli(:,6) 313*59599516SKenneth E. Jansen rmi(:,10) = rlm * u2 * g1yi(:,2) + rmu * u1 * g1yi(:,3) 314*59599516SKenneth E. Jansen & + rmu * u1 * g2yi(:,2) + rlm2mu * u2 * g2yi(:,3) 315*59599516SKenneth E. Jansen & + rmu * u3 * g2yi(:,4) 316*59599516SKenneth E. Jansen & + rmu * u3 * g3yi(:,3) + rlm * u2 * g3yi(:,4) 317*59599516SKenneth E. Jansen & + con * g2yi(:,5) 318*59599516SKenneth E. Jansenc 319*59599516SKenneth E. Jansen ri (:,7:10) = ri (:,7:10) + rmi(:,7:10) 320*59599516SKenneth E. Jansenc rmi(:,7:10) = rmi(:,7:10) + qdi(:,2:5) 321*59599516SKenneth E. Jansenc 322*59599516SKenneth E. Jansenc flops = flops + 74*npro 323*59599516SKenneth E. Jansenc 324*59599516SKenneth E. Jansenc.... diffusive flux in x3-direction 325*59599516SKenneth E. Jansenc 326*59599516SKenneth E. Jansenc rmi(:,11) = zero 327*59599516SKenneth E. Jansen rmi(:,12) = rmu * g1yi(:,4) 328*59599516SKenneth E. Jansen & + rmu * g3yi(:,2) 329*59599516SKenneth E. Jansen & - rlsli(:,5) 330*59599516SKenneth E. Jansen rmi(:,13) = rmu * g2yi(:,4) 331*59599516SKenneth E. Jansen & + rmu * g3yi(:,3) 332*59599516SKenneth E. Jansen & - rlsli(:,6) 333*59599516SKenneth E. Jansen rmi(:,14) = rlm * g1yi(:,2) 334*59599516SKenneth E. Jansen & + rlm * g2yi(:,3) 335*59599516SKenneth E. Jansen & + rlm2mu * g3yi(:,4) 336*59599516SKenneth E. Jansen & - rlsli(:,3) 337*59599516SKenneth E. Jansen rmi(:,15) = rlm * u3 * g1yi(:,2) + rmu * u1 * g1yi(:,4) 338*59599516SKenneth E. Jansen & + rlm * u3 * g2yi(:,3) + rmu * u2 * g2yi(:,4) 339*59599516SKenneth E. Jansen & + rmu * u1 * g3yi(:,2) + rmu * u2 * g3yi(:,3) 340*59599516SKenneth E. Jansen & + rlm2mu * u3 * g3yi(:,4) 341*59599516SKenneth E. Jansen & + con * g3yi(:,5) 342*59599516SKenneth E. Jansenc 343*59599516SKenneth E. Jansen ri (:,12:15) = ri (:,12:15) + rmi(:,12:15) 344*59599516SKenneth E. Jansenc 345*59599516SKenneth E. Jansenc flops = flops + 74*npro 346*59599516SKenneth E. Jansenc 347*59599516SKenneth E. Jansenc stiff for preconditioner has been eliminated 348*59599516SKenneth E. Jansenc all preconditioner stuff is in e3bdg.f 349*59599516SKenneth E. Jansenc 350*59599516SKenneth E. Jansen 351*59599516SKenneth E. Jansen ttim(23) = ttim(23) + secs(0.0) 352*59599516SKenneth E. Jansen 353*59599516SKenneth E. Jansenc 354*59599516SKenneth E. Jansenc.... return 355*59599516SKenneth E. Jansenc 356*59599516SKenneth E. Jansen return 357*59599516SKenneth E. Jansen end 358*59599516SKenneth E. Jansenc 359*59599516SKenneth E. Jansenc 360*59599516SKenneth E. Jansenc 361*59599516SKenneth E. Jansen subroutine e3viscSclr (g1yti, g2yti, g3yti, 362*59599516SKenneth E. Jansen & rmu, Sclr, rho, 363*59599516SKenneth E. Jansen & rti, rmti, stifft) 364*59599516SKenneth E. Jansenc 365*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 366*59599516SKenneth E. Jansenc 367*59599516SKenneth E. Jansenc This routine calculates the contribution of viscous and heat fluxes 368*59599516SKenneth E. Jansenc to both RHS and LHS. 369*59599516SKenneth E. Jansenc 370*59599516SKenneth E. Jansenc input: 371*59599516SKenneth E. Jansenc g1yti (npro) : grad-y in direction 1 372*59599516SKenneth E. Jansenc g2yti (npro) : grad-y in direction 2 373*59599516SKenneth E. Jansenc g3yti (npro) : grad-y in direction 3 374*59599516SKenneth E. Jansenc rmu (npro) : viscosity 375*59599516SKenneth E. Jansenc Sclr (npro) : scalar variable 376*59599516SKenneth E. Jansenc 377*59599516SKenneth E. Jansenc output: 378*59599516SKenneth E. Jansenc rti (npro,nsd+1) : partial residual 379*59599516SKenneth E. Jansenc rmti (npro,nsd+1) : partial modified residual 380*59599516SKenneth E. Jansenc stifft (npro,nsd,nsd) : stiffness matrix 381*59599516SKenneth E. Jansenc 382*59599516SKenneth E. Jansenc 383*59599516SKenneth E. Jansenc 384*59599516SKenneth E. Jansenc Zdenek Johan, Summer 1990. (Modified from e2visc.f) 385*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 386*59599516SKenneth E. Jansenc Kenneth Jansen, Winter 1997 Primitive Variables 387*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 388*59599516SKenneth E. Jansenc 389*59599516SKenneth E. Jansen use turbSA ! for saSigma 390*59599516SKenneth E. Jansen include "common.h" 391*59599516SKenneth E. Jansenc 392*59599516SKenneth E. Jansenc passed arrays 393*59599516SKenneth E. Jansenc 394*59599516SKenneth E. Jansen dimension g1yti(npro), g2yti(npro), 395*59599516SKenneth E. Jansen & g3yti(npro), rmu(npro), 396*59599516SKenneth E. Jansen & Sclr(npro), rho(npro), 397*59599516SKenneth E. Jansen & rti(npro,nsd+1), rmti(npro,nsd+1), 398*59599516SKenneth E. Jansen & stifft(npro,3,3) 399*59599516SKenneth E. Jansen 400*59599516SKenneth E. Jansen ttim(23) = ttim(23) - tmr() 401*59599516SKenneth E. Jansen 402*59599516SKenneth E. Jansen if ((ilset.ne.zero) .and. (isclr.lt.3)) return 403*59599516SKenneth E. Jansenc 404*59599516SKenneth E. Jansenc.... ---------------------------> RHS <----------------------------- 405*59599516SKenneth E. Jansenc 406*59599516SKenneth E. Jansenc.... ---------------------> Diffusivity Matrix <------------------- 407*59599516SKenneth E. Jansenc 408*59599516SKenneth E. Jansenc if (lhs .eq. 1) then 409*59599516SKenneth E. Jansen 410*59599516SKenneth E. Jansen stifft = zero 411*59599516SKenneth E. Jansenc 412*59599516SKenneth E. Jansenc.... K11 413*59599516SKenneth E. Jansenc 414*59599516SKenneth E. Jansen stifft(:,1,1)=rmu 415*59599516SKenneth E. Jansen if (iRANS .lt. 0) then 416*59599516SKenneth E. Jansen stifft(:,1,1)=saSigmaInv*rho*((rmu/rho)+max(zero,Sclr)) 417*59599516SKenneth E. Jansen endif 418*59599516SKenneth E. Jansenc 419*59599516SKenneth E. Jansenc.... K22 420*59599516SKenneth E. Jansenc 421*59599516SKenneth E. Jansen stifft(:,2,2)=stifft(:,1,1) 422*59599516SKenneth E. Jansenc 423*59599516SKenneth E. Jansenc.... K33 424*59599516SKenneth E. Jansenc 425*59599516SKenneth E. Jansen stifft(:,3,3)=stifft(:,1,1) 426*59599516SKenneth E. Jansen 427*59599516SKenneth E. Jansenc endif 428*59599516SKenneth E. Jansenc 429*59599516SKenneth E. Jansenc.... ---------------------------> RHS <----------------------------- 430*59599516SKenneth E. Jansenc 431*59599516SKenneth E. Jansenc.... compute diffusive fluxes and add them to ri and rmi 432*59599516SKenneth E. Jansenc 433*59599516SKenneth E. Jansenc.... diffusive fluxes 434*59599516SKenneth E. Jansenc 435*59599516SKenneth E. Jansen rmti(:,1) = stifft(:,1,1) * g1yti(:) 436*59599516SKenneth E. Jansen rmti(:,2) = stifft(:,2,2) * g2yti(:) 437*59599516SKenneth E. Jansen rmti(:,3) = stifft(:,3,3) * g3yti(:) 438*59599516SKenneth E. Jansen 439*59599516SKenneth E. Jansen rti (:,:) = rti (:,:) + rmti(:,:) 440*59599516SKenneth E. Jansenc rmi(:,2:5) = rmi(:,2:5) + qdi(:,2:5) 441*59599516SKenneth E. Jansenc 442*59599516SKenneth E. Jansenc flops = flops + 74*npro 443*59599516SKenneth E. Jansenc 444*59599516SKenneth E. Jansen ttim(23) = ttim(23) + tmr() 445*59599516SKenneth E. Jansen 446*59599516SKenneth E. Jansenc 447*59599516SKenneth E. Jansenc.... return 448*59599516SKenneth E. Jansenc 449*59599516SKenneth E. Jansen return 450*59599516SKenneth E. Jansen end 451