1*59599516SKenneth E. Jansen subroutine e3ivar (yl, ycl, acl, 2*59599516SKenneth E. Jansen & Sclr, shape, shgl, 3*59599516SKenneth E. Jansen & xl, dui, aci, 4*59599516SKenneth E. Jansen & g1yi, g2yi, g3yi, 5*59599516SKenneth E. Jansen & shg, dxidx, WdetJ, 6*59599516SKenneth E. Jansen & rho, pres, T, 7*59599516SKenneth E. Jansen & ei, h, alfap, 8*59599516SKenneth E. Jansen & betaT, cp, rk, 9*59599516SKenneth E. Jansen & u1, u2, u3, 10*59599516SKenneth E. Jansen & ql, divqi, sgn, tmp, 11*59599516SKenneth E. Jansen & rmu, rlm, rlm2mu, 12*59599516SKenneth E. Jansen & con, rlsl, rlsli, 13*59599516SKenneth E. Jansen & xmudmi, sforce, cv) 14*59599516SKenneth E. Jansenc 15*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 16*59599516SKenneth E. Jansenc 17*59599516SKenneth E. Jansenc This routine computes the variables at integration point. 18*59599516SKenneth E. Jansenc 19*59599516SKenneth E. Jansenc input: 20*59599516SKenneth E. Jansenc yl (npro,nshl,nflow) : primitive variables (NO SCALARS) 21*59599516SKenneth E. Jansenc ycl (npro,nshl,ndof) : primitive variables at current step 22*59599516SKenneth E. Jansenc acl (npro,nshl,ndof) : prim.var. accel. at the current step 23*59599516SKenneth E. Jansenc shape (npro,nshl) : element shape-functions 24*59599516SKenneth E. Jansenc shgl (nsd,nen) : element local-grad-shape-functions 25*59599516SKenneth E. Jansenc xl (npro,nenl,nsd) : nodal coordinates at current step 26*59599516SKenneth E. Jansenc ql (npro,nshl,(nflow-1)*nsd) : diffusive flux vector 27*59599516SKenneth E. Jansenc rlsl (npro,nshl,6) : resolved Leonard stresses 28*59599516SKenneth E. Jansenc sgn (npro,nshl) : signs of shape functions 29*59599516SKenneth E. Jansenc 30*59599516SKenneth E. Jansenc output: 31*59599516SKenneth E. Jansenc dui (npro,nflow) : delta U variables at current step 32*59599516SKenneth E. Jansenc aci (npro,nflow) : primvar accel. variables at current step 33*59599516SKenneth E. Jansenc g1yi (npro,nflow) : grad-y in direction 1 34*59599516SKenneth E. Jansenc g2yi (npro,nflow) : grad-y in direction 2 35*59599516SKenneth E. Jansenc g3yi (npro,nflow) : grad-y in direction 3 36*59599516SKenneth E. Jansenc shg (npro,nshl,nsd) : element global grad-shape-functions 37*59599516SKenneth E. Jansenc dxidx (npro,nsd,nsd) : inverse of deformation gradient 38*59599516SKenneth E. Jansenc WdetJ (npro) : weighted Jacobian 39*59599516SKenneth E. Jansenc rho (npro) : density 40*59599516SKenneth E. Jansenc pres (npro) : pressure 41*59599516SKenneth E. Jansenc T (npro) : temperature 42*59599516SKenneth E. Jansenc ei (npro) : internal energy 43*59599516SKenneth E. Jansenc h (npro) : enthalpy 44*59599516SKenneth E. Jansenc alfap (npro) : expansivity 45*59599516SKenneth E. Jansenc betaT (npro) : isothermal compressibility 46*59599516SKenneth E. Jansenc cp (npro) : specific heat at constant pressure 47*59599516SKenneth E. Jansenc rk (npro) : kinetic energy 48*59599516SKenneth E. Jansenc u1 (npro) : x1-velocity component 49*59599516SKenneth E. Jansenc u2 (npro) : x2-velocity component 50*59599516SKenneth E. Jansenc u3 (npro) : x3-velocity component 51*59599516SKenneth E. Jansenc divqi (npro,nflow-1) : divergence of diffusive flux 52*59599516SKenneth E. Jansenc rlsli (npro,6) : resolved Leonard stresses at quad pt 53*59599516SKenneth E. Jansenc 54*59599516SKenneth E. Jansenc Zdenek Johan, Summer 1990. (Modified from e2ivar.f) 55*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 56*59599516SKenneth E. Jansenc Kenneth Jansen, Winter 1997. Primitive Variables 57*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 58*59599516SKenneth E. Jansenc 59*59599516SKenneth E. Jansen include "common.h" 60*59599516SKenneth E. Jansenc 61*59599516SKenneth E. Jansenc passed arrays 62*59599516SKenneth E. Jansenc 63*59599516SKenneth E. Jansen dimension yl(npro,nshl,nflow), ycl(npro,nshl,ndof), 64*59599516SKenneth E. Jansen & acl(npro,nshl,ndof), 65*59599516SKenneth E. Jansen & shape(npro,nshl), 66*59599516SKenneth E. Jansen & shgl(npro,nsd,nshl), xl(npro,nenl,nsd), 67*59599516SKenneth E. Jansen & dui(npro,nflow), 68*59599516SKenneth E. Jansen & aci(npro,nflow), g1yi(npro,nflow), 69*59599516SKenneth E. Jansen & g2yi(npro,nflow), g3yi(npro,nflow), 70*59599516SKenneth E. Jansen & shg(npro,nshl,nsd), dxidx(npro,nsd,nsd), 71*59599516SKenneth E. Jansen & WdetJ(npro), 72*59599516SKenneth E. Jansen & rho(npro), pres(npro), 73*59599516SKenneth E. Jansen & T(npro), ei(npro), 74*59599516SKenneth E. Jansen & h(npro), alfap(npro), 75*59599516SKenneth E. Jansen & betaT(npro), cp(npro), 76*59599516SKenneth E. Jansen & rk(npro), cv(npro), 77*59599516SKenneth E. Jansen & u1(npro), u2(npro), 78*59599516SKenneth E. Jansen & u3(npro), divqi(npro,nflow), 79*59599516SKenneth E. Jansen & ql(npro,nshl,idflx), 80*59599516SKenneth E. Jansen & rmu(npro), rlm(npro), 81*59599516SKenneth E. Jansen & rlm2mu(npro), con(npro), 82*59599516SKenneth E. Jansen & Sclr(npro) 83*59599516SKenneth E. Jansenc 84*59599516SKenneth E. Jansen dimension tmp(npro), dxdxi(npro,nsd,nsd), sgn(npro,nshl) 85*59599516SKenneth E. Jansen dimension rlsl(npro,nshl,6), rlsli(npro,6), 86*59599516SKenneth E. Jansen & xmudmi(npro,ngauss) 87*59599516SKenneth E. Jansen dimension gyti(npro,nsd), gradh(npro,nsd), 88*59599516SKenneth E. Jansen & sforce(npro,3), weber(npro) 89*59599516SKenneth E. Jansen ttim(20) = ttim(20) - secs(0.0) 90*59599516SKenneth E. Jansen 91*59599516SKenneth E. Jansenc 92*59599516SKenneth E. Jansen ttim(10) = ttim(10) - secs(0.0) 93*59599516SKenneth E. Jansen 94*59599516SKenneth E. Jansen dui = zero 95*59599516SKenneth E. Jansenc 96*59599516SKenneth E. Jansen do n = 1, nshl 97*59599516SKenneth E. Jansen dui(:,1) = dui(:,1) + shape(:,n) * yl(:,n,1) ! p 98*59599516SKenneth E. Jansen dui(:,2) = dui(:,2) + shape(:,n) * yl(:,n,2) ! u1 99*59599516SKenneth E. Jansen dui(:,3) = dui(:,3) + shape(:,n) * yl(:,n,3) ! u2 100*59599516SKenneth E. Jansen dui(:,4) = dui(:,4) + shape(:,n) * yl(:,n,4) ! u3 101*59599516SKenneth E. Jansen dui(:,5) = dui(:,5) + shape(:,n) * yl(:,n,5) ! T 102*59599516SKenneth E. Jansen enddo 103*59599516SKenneth E. Jansenc 104*59599516SKenneth E. Jansen flops = flops + 10*nshl*npro 105*59599516SKenneth E. Jansenc 106*59599516SKenneth E. Jansenc 107*59599516SKenneth E. Jansenc.... compute conservative variables 108*59599516SKenneth E. Jansenc 109*59599516SKenneth E. Jansen rk = pt5 * (dui(:,2)**2 + dui(:,3)**2 + dui(:,4)**2) 110*59599516SKenneth E. Jansenc 111*59599516SKenneth E. Jansen if (iLSet .ne. 0)then 112*59599516SKenneth E. Jansen Sclr = zero 113*59599516SKenneth E. Jansen isc=abs(iRANS)+6 114*59599516SKenneth E. Jansen do n = 1, nshl 115*59599516SKenneth E. Jansen Sclr = Sclr + shape(:,n) * ycl(:,n,isc) 116*59599516SKenneth E. Jansen enddo 117*59599516SKenneth E. Jansen endif 118*59599516SKenneth E. Jansen 119*59599516SKenneth E. Jansen ithm = 6 120*59599516SKenneth E. Jansen call getthm (dui(:,1), dui(:,5), Sclr, 121*59599516SKenneth E. Jansen & rk, rho, ei, 122*59599516SKenneth E. Jansen & tmp, tmp, tmp, 123*59599516SKenneth E. Jansen & tmp, tmp, tmp, 124*59599516SKenneth E. Jansen & tmp, tmp) 125*59599516SKenneth E. Jansenc 126*59599516SKenneth E. Jansenc 127*59599516SKenneth E. Jansen dui(:,1) = rho 128*59599516SKenneth E. Jansen dui(:,2) = rho * dui(:,2) 129*59599516SKenneth E. Jansen dui(:,3) = rho * dui(:,3) 130*59599516SKenneth E. Jansen dui(:,4) = rho * dui(:,4) 131*59599516SKenneth E. Jansen dui(:,5) = rho * (ei + rk) 132*59599516SKenneth E. Jansen 133*59599516SKenneth E. Jansen 134*59599516SKenneth E. Jansen ttim(10) = ttim(10) + secs(0.0) 135*59599516SKenneth E. Jansenc 136*59599516SKenneth E. Jansenc.... -------------> Primitive variables at int. point <-------------- 137*59599516SKenneth E. Jansenc 138*59599516SKenneth E. Jansenc.... compute primitive variables 139*59599516SKenneth E. Jansenc 140*59599516SKenneth E. Jansen ttim(11) = ttim(11) - secs(0.0) 141*59599516SKenneth E. Jansen 142*59599516SKenneth E. Jansen pres = zero 143*59599516SKenneth E. Jansen u1 = zero 144*59599516SKenneth E. Jansen u2 = zero 145*59599516SKenneth E. Jansen u3 = zero 146*59599516SKenneth E. Jansen T = zero 147*59599516SKenneth E. Jansen do n = 1, nshl 148*59599516SKenneth E. Jansenc 149*59599516SKenneth E. Jansenc y(int)=SUM_{a=1}^nshl (N_a(int) Ya) 150*59599516SKenneth E. Jansenc 151*59599516SKenneth E. Jansen pres = pres + shape(:,n) * ycl(:,n,1) 152*59599516SKenneth E. Jansen u1 = u1 + shape(:,n) * ycl(:,n,2) 153*59599516SKenneth E. Jansen u2 = u2 + shape(:,n) * ycl(:,n,3) 154*59599516SKenneth E. Jansen u3 = u3 + shape(:,n) * ycl(:,n,4) 155*59599516SKenneth E. Jansen T = T + shape(:,n) * ycl(:,n,5) 156*59599516SKenneth E. Jansen enddo 157*59599516SKenneth E. Jansen 158*59599516SKenneth E. Jansen if( (iLES.gt.10).and.(iLES.lt.20)) then ! bardina 159*59599516SKenneth E. Jansen rlsli = zero 160*59599516SKenneth E. Jansen do n = 1, nshl 161*59599516SKenneth E. Jansen 162*59599516SKenneth E. Jansen rlsli(:,1) = rlsli(:,1) + shape(:,n) * rlsl(:,n,1) 163*59599516SKenneth E. Jansen rlsli(:,2) = rlsli(:,2) + shape(:,n) * rlsl(:,n,2) 164*59599516SKenneth E. Jansen rlsli(:,3) = rlsli(:,3) + shape(:,n) * rlsl(:,n,3) 165*59599516SKenneth E. Jansen rlsli(:,4) = rlsli(:,4) + shape(:,n) * rlsl(:,n,4) 166*59599516SKenneth E. Jansen rlsli(:,5) = rlsli(:,5) + shape(:,n) * rlsl(:,n,5) 167*59599516SKenneth E. Jansen rlsli(:,6) = rlsli(:,6) + shape(:,n) * rlsl(:,n,6) 168*59599516SKenneth E. Jansen 169*59599516SKenneth E. Jansen enddo 170*59599516SKenneth E. Jansen else 171*59599516SKenneth E. Jansen rlsli = zero 172*59599516SKenneth E. Jansen endif 173*59599516SKenneth E. Jansenc 174*59599516SKenneth E. Jansen 175*59599516SKenneth E. Jansen ttim(11) = ttim(11) + secs(0.0) 176*59599516SKenneth E. Jansen 177*59599516SKenneth E. Jansenc 178*59599516SKenneth E. Jansenc.... -----------------------> accel. at int. point <---------------------- 179*59599516SKenneth E. Jansenc 180*59599516SKenneth E. Jansen 181*59599516SKenneth E. Jansenc if (ires .ne. 2) then 182*59599516SKenneth E. Jansen ttim(12) = ttim(12) - secs(0.0) 183*59599516SKenneth E. Jansenc 184*59599516SKenneth E. Jansenc.... compute primitive variables 185*59599516SKenneth E. Jansenc 186*59599516SKenneth E. Jansen aci = zero 187*59599516SKenneth E. Jansenc 188*59599516SKenneth E. Jansen do n = 1, nshl 189*59599516SKenneth E. Jansen aci(:,1) = aci(:,1) + shape(:,n) * acl(:,n,1) 190*59599516SKenneth E. Jansen aci(:,2) = aci(:,2) + shape(:,n) * acl(:,n,2) 191*59599516SKenneth E. Jansen aci(:,3) = aci(:,3) + shape(:,n) * acl(:,n,3) 192*59599516SKenneth E. Jansen aci(:,4) = aci(:,4) + shape(:,n) * acl(:,n,4) 193*59599516SKenneth E. Jansen aci(:,5) = aci(:,5) + shape(:,n) * acl(:,n,5) 194*59599516SKenneth E. Jansen enddo 195*59599516SKenneth E. Jansenc 196*59599516SKenneth E. Jansen flops = flops + 10*nshl*npro 197*59599516SKenneth E. Jansen ttim(12) = ttim(12) + secs(0.0) 198*59599516SKenneth E. Jansenc endif !ires .ne. 2 199*59599516SKenneth E. Jansenc 200*59599516SKenneth E. Jansenc.... -----------------> Thermodynamic Properties <------------------- 201*59599516SKenneth E. Jansenc 202*59599516SKenneth E. Jansenc.... compute the kinetic energy 203*59599516SKenneth E. Jansenc 204*59599516SKenneth E. Jansen ttim(27) = ttim(27) - secs(0.0) 205*59599516SKenneth E. Jansenc 206*59599516SKenneth E. Jansen rk = pt5 * ( u1**2 + u2**2 + u3**2 ) 207*59599516SKenneth E. Jansenc 208*59599516SKenneth E. Jansenc.... get the thermodynamic properties 209*59599516SKenneth E. Jansenc 210*59599516SKenneth E. Jansen if (iLSet .ne. 0)then 211*59599516SKenneth E. Jansen Sclr = zero 212*59599516SKenneth E. Jansen isc=abs(iRANS)+6 213*59599516SKenneth E. Jansen do n = 1, nshl 214*59599516SKenneth E. Jansen Sclr = Sclr + shape(:,n) * ycl(:,n,isc) 215*59599516SKenneth E. Jansen enddo 216*59599516SKenneth E. Jansen endif 217*59599516SKenneth E. Jansen 218*59599516SKenneth E. Jansen ithm = 7 219*59599516SKenneth E. Jansen call getthm (pres, T, Sclr, 220*59599516SKenneth E. Jansen & rk, rho, ei, 221*59599516SKenneth E. Jansen & h, tmp, cv, 222*59599516SKenneth E. Jansen & cp, alfap, betaT, 223*59599516SKenneth E. Jansen & tmp, tmp) 224*59599516SKenneth E. Jansenc 225*59599516SKenneth E. Jansen ttim(27) = ttim(27) + secs(0.0) 226*59599516SKenneth E. Jansenc 227*59599516SKenneth E. Jansenc ........Get the material properties 228*59599516SKenneth E. Jansenc 229*59599516SKenneth E. Jansen call getDiff (T, cp, rho, ycl, 230*59599516SKenneth E. Jansen & rmu, rlm, rlm2mu, con, shape, 231*59599516SKenneth E. Jansen & xmudmi, xl) 232*59599516SKenneth E. Jansen 233*59599516SKenneth E. Jansenc.... ---------------------> Element Metrics <----------------------- 234*59599516SKenneth E. Jansenc 235*59599516SKenneth E. Jansen ttim(26) = ttim(26) - secs(0.0) 236*59599516SKenneth E. Jansenc 237*59599516SKenneth E. Jansen call e3metric( xl, shgl, dxidx, 238*59599516SKenneth E. Jansen & shg, WdetJ) 239*59599516SKenneth E. Jansenc 240*59599516SKenneth E. Jansenc 241*59599516SKenneth E. Jansen ttim(26) = ttim(26) + secs(0.0) 242*59599516SKenneth E. Jansenc 243*59599516SKenneth E. Jansenc.... ---------------------> Global Gradients <----------------------- 244*59599516SKenneth E. Jansenc 245*59599516SKenneth E. Jansen ttim(13) = ttim(13) - secs(0.0) 246*59599516SKenneth E. Jansen 247*59599516SKenneth E. Jansen g1yi = zero 248*59599516SKenneth E. Jansen g2yi = zero 249*59599516SKenneth E. Jansen g3yi = zero 250*59599516SKenneth E. Jansenc 251*59599516SKenneth E. Jansen ttim(13) = ttim(13) + secs(0.0) 252*59599516SKenneth E. Jansen ttim(7) = ttim(7) - secs(0.0) 253*59599516SKenneth E. Jansenc 254*59599516SKenneth E. Jansenc.... compute the global gradient of Y-variables 255*59599516SKenneth E. Jansenc 256*59599516SKenneth E. Jansenc 257*59599516SKenneth E. Jansenc Y_{,x_i}=SUM_{a=1}^nshl (N_{a,x_i}(int) Ya) 258*59599516SKenneth E. Jansenc 259*59599516SKenneth E. Jansen if(nshl.eq.4) then 260*59599516SKenneth E. Jansen g1yi(:,1) = g1yi(:,1) + shg(:,1,1) * yl(:,1,1) 261*59599516SKenneth E. Jansen & + shg(:,2,1) * yl(:,2,1) 262*59599516SKenneth E. Jansen & + shg(:,3,1) * yl(:,3,1) 263*59599516SKenneth E. Jansen & + shg(:,4,1) * yl(:,4,1) 264*59599516SKenneth E. Jansenc 265*59599516SKenneth E. Jansen g1yi(:,2) = g1yi(:,2) + shg(:,1,1) * yl(:,1,2) 266*59599516SKenneth E. Jansen & + shg(:,2,1) * yl(:,2,2) 267*59599516SKenneth E. Jansen & + shg(:,3,1) * yl(:,3,2) 268*59599516SKenneth E. Jansen & + shg(:,4,1) * yl(:,4,2) 269*59599516SKenneth E. Jansenc 270*59599516SKenneth E. Jansen g1yi(:,3) = g1yi(:,3) + shg(:,1,1) * yl(:,1,3) 271*59599516SKenneth E. Jansen & + shg(:,2,1) * yl(:,2,3) 272*59599516SKenneth E. Jansen & + shg(:,3,1) * yl(:,3,3) 273*59599516SKenneth E. Jansen & + shg(:,4,1) * yl(:,4,3) 274*59599516SKenneth E. Jansenc 275*59599516SKenneth E. Jansen g1yi(:,4) = g1yi(:,4) + shg(:,1,1) * yl(:,1,4) 276*59599516SKenneth E. Jansen & + shg(:,2,1) * yl(:,2,4) 277*59599516SKenneth E. Jansen & + shg(:,3,1) * yl(:,3,4) 278*59599516SKenneth E. Jansen & + shg(:,4,1) * yl(:,4,4) 279*59599516SKenneth E. Jansenc 280*59599516SKenneth E. Jansen g1yi(:,5) = g1yi(:,5) + shg(:,1,1) * yl(:,1,5) 281*59599516SKenneth E. Jansen & + shg(:,2,1) * yl(:,2,5) 282*59599516SKenneth E. Jansen & + shg(:,3,1) * yl(:,3,5) 283*59599516SKenneth E. Jansen & + shg(:,4,1) * yl(:,4,5) 284*59599516SKenneth E. Jansenc 285*59599516SKenneth E. Jansen g2yi(:,1) = g2yi(:,1) + shg(:,1,2) * yl(:,1,1) 286*59599516SKenneth E. Jansen & + shg(:,2,2) * yl(:,2,1) 287*59599516SKenneth E. Jansen & + shg(:,3,2) * yl(:,3,1) 288*59599516SKenneth E. Jansen & + shg(:,4,2) * yl(:,4,1) 289*59599516SKenneth E. Jansenc 290*59599516SKenneth E. Jansen g2yi(:,2) = g2yi(:,2) + shg(:,1,2) * yl(:,1,2) 291*59599516SKenneth E. Jansen & + shg(:,2,2) * yl(:,2,2) 292*59599516SKenneth E. Jansen & + shg(:,3,2) * yl(:,3,2) 293*59599516SKenneth E. Jansen & + shg(:,4,2) * yl(:,4,2) 294*59599516SKenneth E. Jansenc 295*59599516SKenneth E. Jansen g2yi(:,3) = g2yi(:,3) + shg(:,1,2) * yl(:,1,3) 296*59599516SKenneth E. Jansen & + shg(:,2,2) * yl(:,2,3) 297*59599516SKenneth E. Jansen & + shg(:,3,2) * yl(:,3,3) 298*59599516SKenneth E. Jansen & + shg(:,4,2) * yl(:,4,3) 299*59599516SKenneth E. Jansenc 300*59599516SKenneth E. Jansen g2yi(:,4) = g2yi(:,4) + shg(:,1,2) * yl(:,1,4) 301*59599516SKenneth E. Jansen & + shg(:,2,2) * yl(:,2,4) 302*59599516SKenneth E. Jansen & + shg(:,3,2) * yl(:,3,4) 303*59599516SKenneth E. Jansen & + shg(:,4,2) * yl(:,4,4) 304*59599516SKenneth E. Jansenc 305*59599516SKenneth E. Jansen g2yi(:,5) = g2yi(:,5) + shg(:,1,2) * yl(:,1,5) 306*59599516SKenneth E. Jansen & + shg(:,2,2) * yl(:,2,5) 307*59599516SKenneth E. Jansen & + shg(:,3,2) * yl(:,3,5) 308*59599516SKenneth E. Jansen & + shg(:,4,2) * yl(:,4,5) 309*59599516SKenneth E. Jansenc 310*59599516SKenneth E. Jansen g3yi(:,1) = g3yi(:,1) + shg(:,1,3) * yl(:,1,1) 311*59599516SKenneth E. Jansen & + shg(:,2,3) * yl(:,2,1) 312*59599516SKenneth E. Jansen & + shg(:,3,3) * yl(:,3,1) 313*59599516SKenneth E. Jansen & + shg(:,4,3) * yl(:,4,1) 314*59599516SKenneth E. Jansenc 315*59599516SKenneth E. Jansen g3yi(:,2) = g3yi(:,2) + shg(:,1,3) * yl(:,1,2) 316*59599516SKenneth E. Jansen & + shg(:,2,3) * yl(:,2,2) 317*59599516SKenneth E. Jansen & + shg(:,3,3) * yl(:,3,2) 318*59599516SKenneth E. Jansen & + shg(:,4,3) * yl(:,4,2) 319*59599516SKenneth E. Jansenc 320*59599516SKenneth E. Jansen g3yi(:,3) = g3yi(:,3) + shg(:,1,3) * yl(:,1,3) 321*59599516SKenneth E. Jansen & + shg(:,2,3) * yl(:,2,3) 322*59599516SKenneth E. Jansen & + shg(:,3,3) * yl(:,3,3) 323*59599516SKenneth E. Jansen & + shg(:,4,3) * yl(:,4,3) 324*59599516SKenneth E. Jansenc 325*59599516SKenneth E. Jansen g3yi(:,4) = g3yi(:,4) + shg(:,1,3) * yl(:,1,4) 326*59599516SKenneth E. Jansen & + shg(:,2,3) * yl(:,2,4) 327*59599516SKenneth E. Jansen & + shg(:,3,3) * yl(:,3,4) 328*59599516SKenneth E. Jansen & + shg(:,4,3) * yl(:,4,4) 329*59599516SKenneth E. Jansenc 330*59599516SKenneth E. Jansen g3yi(:,5) = g3yi(:,5) + shg(:,1,3) * yl(:,1,5) 331*59599516SKenneth E. Jansen & + shg(:,2,3) * yl(:,2,5) 332*59599516SKenneth E. Jansen & + shg(:,3,3) * yl(:,3,5) 333*59599516SKenneth E. Jansen & + shg(:,4,3) * yl(:,4,5) 334*59599516SKenneth E. Jansenc 335*59599516SKenneth E. Jansen else 336*59599516SKenneth E. Jansen do n = 1, nshl 337*59599516SKenneth E. Jansen g1yi(:,1) = g1yi(:,1) + shg(:,n,1) * yl(:,n,1) 338*59599516SKenneth E. Jansen g1yi(:,2) = g1yi(:,2) + shg(:,n,1) * yl(:,n,2) 339*59599516SKenneth E. Jansen g1yi(:,3) = g1yi(:,3) + shg(:,n,1) * yl(:,n,3) 340*59599516SKenneth E. Jansen g1yi(:,4) = g1yi(:,4) + shg(:,n,1) * yl(:,n,4) 341*59599516SKenneth E. Jansen g1yi(:,5) = g1yi(:,5) + shg(:,n,1) * yl(:,n,5) 342*59599516SKenneth E. Jansenc 343*59599516SKenneth E. Jansen g2yi(:,1) = g2yi(:,1) + shg(:,n,2) * yl(:,n,1) 344*59599516SKenneth E. Jansen g2yi(:,2) = g2yi(:,2) + shg(:,n,2) * yl(:,n,2) 345*59599516SKenneth E. Jansen g2yi(:,3) = g2yi(:,3) + shg(:,n,2) * yl(:,n,3) 346*59599516SKenneth E. Jansen g2yi(:,4) = g2yi(:,4) + shg(:,n,2) * yl(:,n,4) 347*59599516SKenneth E. Jansen g2yi(:,5) = g2yi(:,5) + shg(:,n,2) * yl(:,n,5) 348*59599516SKenneth E. Jansenc 349*59599516SKenneth E. Jansen g3yi(:,1) = g3yi(:,1) + shg(:,n,3) * yl(:,n,1) 350*59599516SKenneth E. Jansen g3yi(:,2) = g3yi(:,2) + shg(:,n,3) * yl(:,n,2) 351*59599516SKenneth E. Jansen g3yi(:,3) = g3yi(:,3) + shg(:,n,3) * yl(:,n,3) 352*59599516SKenneth E. Jansen g3yi(:,4) = g3yi(:,4) + shg(:,n,3) * yl(:,n,4) 353*59599516SKenneth E. Jansen g3yi(:,5) = g3yi(:,5) + shg(:,n,3) * yl(:,n,5) 354*59599516SKenneth E. Jansenc 355*59599516SKenneth E. Jansen enddo 356*59599516SKenneth E. Jansen endif 357*59599516SKenneth E. Jansen 358*59599516SKenneth E. Jansen 359*59599516SKenneth E. Jansenc 360*59599516SKenneth E. Jansenc 361*59599516SKenneth E. Jansen divqi = zero 362*59599516SKenneth E. Jansen idflow = 0 363*59599516SKenneth E. Jansen if (((idiff >= 1) .or. isurf==1).and. 364*59599516SKenneth E. Jansen & (ires == 3 .or. ires==1)) then 365*59599516SKenneth E. Jansen ttim(32) = ttim(32) - tmr() 366*59599516SKenneth E. Jansenc 367*59599516SKenneth E. Jansenc CLASS please ignore all terms related to qi until after you 368*59599516SKenneth E. Jansenc understand EVERYTHING ELSE IN THE CODE. You may run with 369*59599516SKenneth E. Jansenc idiff=0 for the whole class and everything will be ok never 370*59599516SKenneth E. Jansenc having understood this part. (leave it for later). 371*59599516SKenneth E. Jansenc 372*59599516SKenneth E. Jansenc.... compute divergence of diffusive flux vector, qi,i 373*59599516SKenneth E. Jansenc 374*59599516SKenneth E. Jansen if(idiff >= 1) then 375*59599516SKenneth E. Jansen idflow = idflow + 4 376*59599516SKenneth E. Jansen do n=1, nshl 377*59599516SKenneth E. Jansen 378*59599516SKenneth E. Jansen divqi(:,1) = divqi(:,1) + shg(:,n,1)*ql(:,n,1 ) 379*59599516SKenneth E. Jansen & + shg(:,n,2)*ql(:,n,5 ) 380*59599516SKenneth E. Jansen & + shg(:,n,3)*ql(:,n,9 ) 381*59599516SKenneth E. Jansen 382*59599516SKenneth E. Jansen divqi(:,2) = divqi(:,2) + shg(:,n,1)*ql(:,n,2 ) 383*59599516SKenneth E. Jansen & + shg(:,n,2)*ql(:,n,6 ) 384*59599516SKenneth E. Jansen & + shg(:,n,3)*ql(:,n,10) 385*59599516SKenneth E. Jansen 386*59599516SKenneth E. Jansen divqi(:,3) = divqi(:,3) + shg(:,n,1)*ql(:,n,3 ) 387*59599516SKenneth E. Jansen & + shg(:,n,2)*ql(:,n,7 ) 388*59599516SKenneth E. Jansen & + shg(:,n,3)*ql(:,n,11) 389*59599516SKenneth E. Jansen 390*59599516SKenneth E. Jansen divqi(:,4) = divqi(:,4) + shg(:,n,1)*ql(:,n,4 ) 391*59599516SKenneth E. Jansen & + shg(:,n,2)*ql(:,n,8 ) 392*59599516SKenneth E. Jansen & + shg(:,n,3)*ql(:,n,12) 393*59599516SKenneth E. Jansen 394*59599516SKenneth E. Jansen enddo 395*59599516SKenneth E. Jansen endif !end of idiff 396*59599516SKenneth E. Jansenc 397*59599516SKenneth E. Jansen if (isurf .eq. 1) then 398*59599516SKenneth E. Jansenc .... divergence of normal calculation 399*59599516SKenneth E. Jansen do n=1, nshl 400*59599516SKenneth E. Jansen divqi(:,idflow+1) = divqi(:,idflow+1) 401*59599516SKenneth E. Jansen & + shg(:,n,1)*ql(:,n,idflx-2) 402*59599516SKenneth E. Jansen & + shg(:,n,2)*ql(:,n,idflx-1) 403*59599516SKenneth E. Jansen & + shg(:,n,3)*ql(:,n,idflx) 404*59599516SKenneth E. Jansen enddo 405*59599516SKenneth E. Jansenc .... initialization of some variables 406*59599516SKenneth E. Jansen Sclr = zero 407*59599516SKenneth E. Jansen gradh= zero 408*59599516SKenneth E. Jansen gyti = zero 409*59599516SKenneth E. Jansen sforce=zero 410*59599516SKenneth E. Jansen do i = 1, npro 411*59599516SKenneth E. Jansen do n = 1, nshl 412*59599516SKenneth E. Jansen Sclr(i) = Sclr(i) + shape(i,n) * ycl(i,n,6) !scalar 413*59599516SKenneth E. Jansenc 414*59599516SKenneth E. Jansenc .... compute the global gradient of Scalar variable 415*59599516SKenneth E. Jansenc 416*59599516SKenneth E. Jansen gyti(i,1) = gyti(i,1) + shg(i,n,1) * ycl(i,n,6) 417*59599516SKenneth E. Jansen gyti(i,2) = gyti(i,2) + shg(i,n,2) * ycl(i,n,6) 418*59599516SKenneth E. Jansen gyti(i,3) = gyti(i,3) + shg(i,n,3) * ycl(i,n,6) 419*59599516SKenneth E. Jansenc 420*59599516SKenneth E. Jansen enddo 421*59599516SKenneth E. Jansen 422*59599516SKenneth E. Jansen if (abs (sclr(i)) .le. epsilon_ls) then 423*59599516SKenneth E. Jansen gradh(i,1) = 0.5/epsilon_ls * (1 424*59599516SKenneth E. Jansen & + cos(pi*Sclr(i)/epsilon_ls)) * gyti(i,1) 425*59599516SKenneth E. Jansen gradh(i,2) = 0.5/epsilon_ls * (1 426*59599516SKenneth E. Jansen & + cos(pi*Sclr(i)/epsilon_ls)) * gyti(i,2) 427*59599516SKenneth E. Jansen gradh(i,3) = 0.5/epsilon_ls * (1 428*59599516SKenneth E. Jansen & + cos(pi*Sclr(i)/epsilon_ls)) * gyti(i,3) 429*59599516SKenneth E. Jansen endif 430*59599516SKenneth E. Jansen enddo !end of the loop over npro 431*59599516SKenneth E. Jansenc 432*59599516SKenneth E. Jansenc .... surface tension force calculation 433*59599516SKenneth E. Jansenc .. divide by density now as it gets multiplied in e3res.f, as surface 434*59599516SKenneth E. Jansenc tension force is already in the form of force per unit volume 435*59599516SKenneth E. Jansenc 436*59599516SKenneth E. Jansen 437*59599516SKenneth E. Jansen weber(:)= Bo 438*59599516SKenneth E. Jansen sforce(:,1) = -(1.0/weber(:)) * divqi(:,idflow+1) !x-direction 439*59599516SKenneth E. Jansen & *gradh(:,1)/rho(:) 440*59599516SKenneth E. Jansen sforce(:,2) = -(1.0/weber(:)) * divqi(:,idflow+1) !y-direction 441*59599516SKenneth E. Jansen & *gradh(:,2)/rho(:) 442*59599516SKenneth E. Jansen sforce(:,3) = -(1.0/weber(:)) * divqi(:,idflow+1) !z-direction 443*59599516SKenneth E. Jansen & *gradh(:,3)/rho(:) 444*59599516SKenneth E. Jansen 445*59599516SKenneth E. Jansen endif ! end of the surface tension force calculation 446*59599516SKenneth E. Jansen 447*59599516SKenneth E. Jansen ttim(32) = ttim(32) + secs(0.0) 448*59599516SKenneth E. Jansen 449*59599516SKenneth E. Jansen endif ! diffusive flux computation 450*59599516SKenneth E. Jansenc 451*59599516SKenneth E. Jansenc.... return 452*59599516SKenneth E. Jansenc 453*59599516SKenneth E. Jansen ttim(20) = ttim(20) + secs(0.0) 454*59599516SKenneth E. Jansenc 455*59599516SKenneth E. Jansenc.... -----------------------> dist. kin energy at int. point <-------------- 456*59599516SKenneth E. Jansenc 457*59599516SKenneth E. Jansenc 458*59599516SKenneth E. Jansenc if (ires .ne. 2 .and. iter.eq.1) then !only do at beginning of step 459*59599516SKenneth E. Jansenc 460*59599516SKenneth E. Jansenc calc exact velocity for a channel at quadrature points. 461*59599516SKenneth E. Jansenc 462*59599516SKenneth E. Jansenc dkei=0.0 463*59599516SKenneth E. Jansenc 464*59599516SKenneth E. Jansenc first guess would be this but it is wrong since it measures the 465*59599516SKenneth E. Jansenc error outside of FEM space as well. This would be correct if we 466*59599516SKenneth E. Jansenc wanted to measure error but for disturbance we would like to get 467*59599516SKenneth E. Jansenc zero if the solution was nodally exact (i.e no disturbance added to 468*59599516SKenneth E. Jansenc the base flow which is nodally exact). 469*59599516SKenneth E. Jansenc 470*59599516SKenneth E. Jansenc do n = 1, nshl 471*59599516SKenneth E. Jansenc dkei = dkei + shape(:,n) * xl(:,n,2) ! this is just the y coord 472*59599516SKenneth E. Jansenc enddo 473*59599516SKenneth E. Jansenc dkei = (1.0-dkei*dkei) ! u_exact with u_cl=1 474*59599516SKenneth E. Jansenc 475*59599516SKenneth E. Jansenc 476*59599516SKenneth E. Jansenc correct way 477*59599516SKenneth E. Jansenc 478*59599516SKenneth E. Jansenc do n = 1, nshl 479*59599516SKenneth E. Jansenc dkei = dkei + shape(:,n) * (1.0-xl(:,n,2)**2) !u_ex^~ (in FEM space) 480*59599516SKenneth E. Jansenc enddo 481*59599516SKenneth E. Jansenc dkei = (u1-dkei)**2 +u2**2 ! u'^2+v'^2 482*59599516SKenneth E. Jansenc dkei = dkei*WdetJ ! mult function*W*det of jacobian to 483*59599516SKenneth E. Jansenc get this quadrature point contribution 484*59599516SKenneth E. Jansenc dke = dke+sum(dkei) ! we move the sum over elements inside of the 485*59599516SKenneth E. Jansenc sum over quadrature to save memory (we want 486*59599516SKenneth E. Jansenc a scalar only) 487*59599516SKenneth E. Jansenc endif 488*59599516SKenneth E. Jansen return 489*59599516SKenneth E. Jansen end 490*59599516SKenneth E. Jansen subroutine e3ivarSclr (ycl, acl, acti, 491*59599516SKenneth E. Jansen & shape, shgl, xl, 492*59599516SKenneth E. Jansen & T, cp, 493*59599516SKenneth E. Jansen & dxidx, Sclr, 494*59599516SKenneth E. Jansen & WdetJ, vort, 495*59599516SKenneth E. Jansen & g1yti, g2yti, g3yti, 496*59599516SKenneth E. Jansen & rho, rmu, con, 497*59599516SKenneth E. Jansen & rk, u1, u2, 498*59599516SKenneth E. Jansen & u3, shg, dwl, 499*59599516SKenneth E. Jansen & dist2w) 500*59599516SKenneth E. Jansenc 501*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 502*59599516SKenneth E. Jansenc 503*59599516SKenneth E. Jansenc This routine computes the variables at integration point. 504*59599516SKenneth E. Jansenc 505*59599516SKenneth E. Jansenc input: 506*59599516SKenneth E. Jansenc ycl (npro,nshl,ndof) : primitive variables 507*59599516SKenneth E. Jansenc actl (npro,nshl) : time-deriv of ytl 508*59599516SKenneth E. Jansenc dwl (npro,nshl) : distances to wall 509*59599516SKenneth E. Jansenc shape (npro,nshl) : element shape-functions 510*59599516SKenneth E. Jansenc shgl (npro,nsd,nshl) : element local-grad-shape-functions 511*59599516SKenneth E. Jansenc xl (npro,nenl,nsd) : nodal coordinates at current step 512*59599516SKenneth E. Jansenc 513*59599516SKenneth E. Jansenc output: 514*59599516SKenneth E. Jansenc acti (npro) : time-deriv of Scalar variable 515*59599516SKenneth E. Jansenc Sclr (npro) : Scalar variable at intpt 516*59599516SKenneth E. Jansenc dist2w (npro) : distance to nearest wall at intpt 517*59599516SKenneth E. Jansenc WdetJ (npro) : weighted Jacobian at intpt 518*59599516SKenneth E. Jansenc vort (npro) : vorticity at intpt 519*59599516SKenneth E. Jansenc g1yti (npro) : grad-Sclr in direction 1 at intpt 520*59599516SKenneth E. Jansenc g2yti (npro) : grad-Sclr in direction 2 at intpt 521*59599516SKenneth E. Jansenc g3yti (npro) : grad-Sclr in direction 3 at intpt 522*59599516SKenneth E. Jansenc rho (npro) : density at intpt 523*59599516SKenneth E. Jansenc rmu (npro) : molecular viscosity 524*59599516SKenneth E. Jansenc con (npro) : conductivity 525*59599516SKenneth E. Jansenc rk (npro) : kinetic energy 526*59599516SKenneth E. Jansenc u1 (npro) : x1-velocity component at intpt 527*59599516SKenneth E. Jansenc u2 (npro) : x2-velocity component at intpt 528*59599516SKenneth E. Jansenc u3 (npro) : x3-velocity component at intpt 529*59599516SKenneth E. Jansenc shg (npro,nshl,nsd) : element global grad-shape-functions at intpt 530*59599516SKenneth E. Jansenc 531*59599516SKenneth E. Jansenc also used: 532*59599516SKenneth E. Jansenc pres (npro) : pressure at intpt 533*59599516SKenneth E. Jansenc T (npro) : temperature at intpt 534*59599516SKenneth E. Jansenc ei (npro) : internal energy at intpt 535*59599516SKenneth E. Jansenc h (npro) : enthalpy at intpt 536*59599516SKenneth E. Jansenc alfap (npro) : expansivity at intpt 537*59599516SKenneth E. Jansenc betaT (npro) : isothermal compressibility at intpt 538*59599516SKenneth E. Jansenc cp (npro) : specific heat at constant pressure at intpt 539*59599516SKenneth E. Jansenc dxidx (npro,nsd,nsd) : inverse of deformation gradient at intpt 540*59599516SKenneth E. Jansenc divqi (npro,nflow-1) : divergence of diffusive flux 541*59599516SKenneth E. Jansenc 542*59599516SKenneth E. Jansenc 543*59599516SKenneth E. Jansenc Zdenek Johan, Summer 1990. (Modified from e2ivar.f) 544*59599516SKenneth E. Jansenc Zdenek Johan, Winter 1991. (Fortran 90) 545*59599516SKenneth E. Jansenc Kenneth Jansen, Winter 1997. Primitive Variables 546*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 547*59599516SKenneth E. Jansenc 548*59599516SKenneth E. Jansen include "common.h" 549*59599516SKenneth E. Jansenc 550*59599516SKenneth E. Jansenc passed arrays 551*59599516SKenneth E. Jansenc 552*59599516SKenneth E. Jansen dimension ycl(npro,nshl,ndof), 553*59599516SKenneth E. Jansen & acl(npro,nshl,ndof), acti(npro), 554*59599516SKenneth E. Jansen & shape(npro,nshl), 555*59599516SKenneth E. Jansen & shgl(npro,nsd,nshl), xl(npro,nenl,nsd), 556*59599516SKenneth E. Jansen & dui(npro,nflow), 557*59599516SKenneth E. Jansen & g1yi(npro,nflow), 558*59599516SKenneth E. Jansen & g2yi(npro,nflow), g3yi(npro,nflow), 559*59599516SKenneth E. Jansen & shg(npro,nshl,nsd), dxidx(npro,nsd,nsd), 560*59599516SKenneth E. Jansen & WdetJ(npro), 561*59599516SKenneth E. Jansen & rho(npro), pres(npro), 562*59599516SKenneth E. Jansen & T(npro), ei(npro), 563*59599516SKenneth E. Jansen & h(npro), alfap(npro), 564*59599516SKenneth E. Jansen & betaT(npro), cp(npro), 565*59599516SKenneth E. Jansen & rk(npro), 566*59599516SKenneth E. Jansen & u1(npro), u2(npro), 567*59599516SKenneth E. Jansen & u3(npro), divqi(npro,nflow-1), 568*59599516SKenneth E. Jansen & ql(npro,nshl,(nflow-1)*nsd),Sclr(npro), 569*59599516SKenneth E. Jansen & dwl(npro,nenl), 570*59599516SKenneth E. Jansen & dist2w(npro), 571*59599516SKenneth E. Jansen & vort(npro), 572*59599516SKenneth E. Jansen & rmu(npro), con(npro), 573*59599516SKenneth E. Jansen & g1yti(npro), 574*59599516SKenneth E. Jansen & g2yti(npro), g3yti(npro) 575*59599516SKenneth E. Jansenc 576*59599516SKenneth E. Jansen 577*59599516SKenneth E. Jansen dimension tmp(npro), dxdxi(npro,nsd,nsd) 578*59599516SKenneth E. Jansenc 579*59599516SKenneth E. Jansen ttim(20) = ttim(20) - tmr() 580*59599516SKenneth E. Jansenc 581*59599516SKenneth E. Jansenc.... -------------> Primitive variables at int. point <-------------- 582*59599516SKenneth E. Jansenc 583*59599516SKenneth E. Jansenc.... compute primitive variables 584*59599516SKenneth E. Jansenc 585*59599516SKenneth E. Jansen ttim(11) = ttim(11) - tmr() 586*59599516SKenneth E. Jansen 587*59599516SKenneth E. Jansen pres = zero 588*59599516SKenneth E. Jansen u1 = zero 589*59599516SKenneth E. Jansen u2 = zero 590*59599516SKenneth E. Jansen u3 = zero 591*59599516SKenneth E. Jansen T = zero 592*59599516SKenneth E. Jansen Sclr = zero 593*59599516SKenneth E. Jansen dist2w = zero 594*59599516SKenneth E. Jansenc 595*59599516SKenneth E. Jansen id = isclr + 5 596*59599516SKenneth E. Jansen do n = 1, nshl 597*59599516SKenneth E. Jansenc 598*59599516SKenneth E. Jansenc y(intp)=SUM_{a=1}^nshl (N_a(intp) Ya) 599*59599516SKenneth E. Jansenc 600*59599516SKenneth E. Jansen pres = pres + shape(:,n) * ycl( :,n,1) 601*59599516SKenneth E. Jansen u1 = u1 + shape(:,n) * ycl( :,n,2) 602*59599516SKenneth E. Jansen u2 = u2 + shape(:,n) * ycl( :,n,3) 603*59599516SKenneth E. Jansen u3 = u3 + shape(:,n) * ycl( :,n,4) 604*59599516SKenneth E. Jansen T = T + shape(:,n) * ycl( :,n,5) 605*59599516SKenneth E. Jansen Sclr = Sclr + shape(:,n) * ycl(:,n,id) 606*59599516SKenneth E. Jansen if (iRANS.lt.0) then 607*59599516SKenneth E. Jansen dist2w = dist2w + shape(:,n) * dwl(:,n) 608*59599516SKenneth E. Jansen endif 609*59599516SKenneth E. Jansen enddo 610*59599516SKenneth E. Jansenc 611*59599516SKenneth E. Jansen ttim(11) = ttim(11) + tmr() 612*59599516SKenneth E. Jansenc 613*59599516SKenneth E. Jansenc.... -----------------------> accel. at intp. point <---------------------- 614*59599516SKenneth E. Jansenc 615*59599516SKenneth E. Jansen 616*59599516SKenneth E. Jansen if (ires .ne. 2) then 617*59599516SKenneth E. Jansen ttim(12) = ttim(12) - tmr() 618*59599516SKenneth E. Jansenc 619*59599516SKenneth E. Jansenc.... compute time-derivative of Scalar variable 620*59599516SKenneth E. Jansenc 621*59599516SKenneth E. Jansen acti = zero 622*59599516SKenneth E. Jansen do n = 1, nshl 623*59599516SKenneth E. Jansen acti(:) = acti(:) + shape(:,n) * acl(:,n,id) 624*59599516SKenneth E. Jansen enddo 625*59599516SKenneth E. Jansenc 626*59599516SKenneth E. Jansen flops = flops + 10*nshl*npro 627*59599516SKenneth E. Jansen ttim(12) = ttim(12) + tmr() 628*59599516SKenneth E. Jansen endif !ires .ne. 2 629*59599516SKenneth E. Jansenc 630*59599516SKenneth E. Jansenc.... -----------------> Thermodynamic Properties <------------------- 631*59599516SKenneth E. Jansenc 632*59599516SKenneth E. Jansenc.... compute the kinetic energy 633*59599516SKenneth E. Jansenc 634*59599516SKenneth E. Jansen ttim(27) = ttim(27) - tmr() 635*59599516SKenneth E. Jansenc 636*59599516SKenneth E. Jansen rk = pt5 * ( u1**2 + u2**2 + u3**2 ) 637*59599516SKenneth E. Jansenc 638*59599516SKenneth E. Jansenc.... get the thermodynamic and material properties 639*59599516SKenneth E. Jansenc 640*59599516SKenneth E. Jansen ithm = 7 641*59599516SKenneth E. Jansen call getthm (pres, T, Sclr, 642*59599516SKenneth E. Jansen & rk, rho, tmp, 643*59599516SKenneth E. Jansen & tmp, tmp, tmp, 644*59599516SKenneth E. Jansen & cp, tmp, tmp, 645*59599516SKenneth E. Jansen & tmp, tmp) 646*59599516SKenneth E. Jansenc 647*59599516SKenneth E. Jansen if (iconvsclr.eq.2) rho=one 648*59599516SKenneth E. Jansenc 649*59599516SKenneth E. Jansen call getDiffSclr(T, cp, rmu, 650*59599516SKenneth E. Jansen & tmp, tmp, con, rho, Sclr) 651*59599516SKenneth E. Jansen 652*59599516SKenneth E. Jansen ttim(27) = ttim(27) + tmr() 653*59599516SKenneth E. Jansen 654*59599516SKenneth E. Jansen 655*59599516SKenneth E. Jansenc 656*59599516SKenneth E. Jansenc.... ---------------------> Element Metrics <----------------------- 657*59599516SKenneth E. Jansenc 658*59599516SKenneth E. Jansen call e3metric( xl, shgl, dxidx, 659*59599516SKenneth E. Jansen & shg, WdetJ) 660*59599516SKenneth E. Jansen 661*59599516SKenneth E. Jansen 662*59599516SKenneth E. Jansen 663*59599516SKenneth E. Jansenc.... ---------------------> Global Gradients <----------------------- 664*59599516SKenneth E. Jansenc 665*59599516SKenneth E. Jansen ttim(13) = ttim(13) - tmr() 666*59599516SKenneth E. Jansen 667*59599516SKenneth E. Jansen g1yi = zero 668*59599516SKenneth E. Jansen g2yi = zero 669*59599516SKenneth E. Jansen g3yi = zero 670*59599516SKenneth E. Jansenc 671*59599516SKenneth E. Jansenc.... compute the global gradient of Y-variables 672*59599516SKenneth E. Jansenc 673*59599516SKenneth E. Jansenc 674*59599516SKenneth E. Jansenc Y_{,x_i}=SUM_{a=1}^nshl (N_{a,x_i}(intp) Ya) 675*59599516SKenneth E. Jansenc 676*59599516SKenneth E. Jansen do n = 1, nshl 677*59599516SKenneth E. Jansenc g1yi(:,1) = g1yi(:,1) + shg(:,n,1) * ycl(:,n,1) 678*59599516SKenneth E. Jansenc g1yi(:,2) = g1yi(:,2) + shg(:,n,1) * ycl(:,n,2) 679*59599516SKenneth E. Jansen g1yi(:,3) = g1yi(:,3) + shg(:,n,1) * ycl(:,n,3) 680*59599516SKenneth E. Jansen g1yi(:,4) = g1yi(:,4) + shg(:,n,1) * ycl(:,n,4) 681*59599516SKenneth E. Jansenc g1yi(:,5) = g1yi(:,5) + shg(:,n,1) * ycl(:,n,5) 682*59599516SKenneth E. Jansenc 683*59599516SKenneth E. Jansenc g2yi(:,1) = g2yi(:,1) + shg(:,n,2) * ycl(:,n,1) 684*59599516SKenneth E. Jansen g2yi(:,2) = g2yi(:,2) + shg(:,n,2) * ycl(:,n,2) 685*59599516SKenneth E. Jansenc g2yi(:,3) = g2yi(:,3) + shg(:,n,2) * ycl(:,n,3) 686*59599516SKenneth E. Jansen g2yi(:,4) = g2yi(:,4) + shg(:,n,2) * ycl(:,n,4) 687*59599516SKenneth E. Jansenc g2yi(:,5) = g2yi(:,5) + shg(:,n,2) * ycl(:,n,5) 688*59599516SKenneth E. Jansenc 689*59599516SKenneth E. Jansenc g3yi(:,1) = g3yi(:,1) + shg(:,n,3) * ycl(:,n,1) 690*59599516SKenneth E. Jansen g3yi(:,2) = g3yi(:,2) + shg(:,n,3) * ycl(:,n,2) 691*59599516SKenneth E. Jansen g3yi(:,3) = g3yi(:,3) + shg(:,n,3) * ycl(:,n,3) 692*59599516SKenneth E. Jansenc g3yi(:,4) = g3yi(:,4) + shg(:,n,3) * ycl(:,n,4) 693*59599516SKenneth E. Jansenc g3yi(:,5) = g3yi(:,5) + shg(:,n,3) * ycl(:,n,5) 694*59599516SKenneth E. Jansenc 695*59599516SKenneth E. Jansen enddo 696*59599516SKenneth E. Jansen 697*59599516SKenneth E. Jansen 698*59599516SKenneth E. Jansen 699*59599516SKenneth E. Jansen g1yti = zero 700*59599516SKenneth E. Jansen g2yti = zero 701*59599516SKenneth E. Jansen g3yti = zero 702*59599516SKenneth E. Jansenc 703*59599516SKenneth E. Jansenc.... compute the global gradient of Scalar variable 704*59599516SKenneth E. Jansenc 705*59599516SKenneth E. Jansenc 706*59599516SKenneth E. Jansenc Y_{,x_i}=SUM_{a=1}^nshl (N_{a,x_i}(intp) Ya) 707*59599516SKenneth E. Jansenc 708*59599516SKenneth E. Jansen do n = 1, nshl 709*59599516SKenneth E. Jansen g1yti(:) = g1yti(:) + shg(:,n,1) * ycl(:,n,id) 710*59599516SKenneth E. Jansen g2yti(:) = g2yti(:) + shg(:,n,2) * ycl(:,n,id) 711*59599516SKenneth E. Jansen g3yti(:) = g3yti(:) + shg(:,n,3) * ycl(:,n,id) 712*59599516SKenneth E. Jansenc 713*59599516SKenneth E. Jansen enddo 714*59599516SKenneth E. Jansenc ********************************************************** 715*59599516SKenneth E. Jansenc 716*59599516SKenneth E. Jansenc.... compute vorticity at this integration point 717*59599516SKenneth E. Jansenc 718*59599516SKenneth E. Jansen vort = sqrt( 719*59599516SKenneth E. Jansen & (g2yi(:,4)-g3yi(:,3))**2 720*59599516SKenneth E. Jansen & +(g3yi(:,2)-g1yi(:,4))**2 721*59599516SKenneth E. Jansen & +(g1yi(:,3)-g2yi(:,2))**2 722*59599516SKenneth E. Jansen & ) 723*59599516SKenneth E. Jansenc *********************************************************** 724*59599516SKenneth E. Jansen 725*59599516SKenneth E. Jansen ttim(7) = ttim(7) + tmr() 726*59599516SKenneth E. Jansen 727*59599516SKenneth E. Jansenc 728*59599516SKenneth E. Jansenc.... return 729*59599516SKenneth E. Jansenc 730*59599516SKenneth E. Jansen ttim(20) = ttim(20) + tmr() 731*59599516SKenneth E. Jansen return 732*59599516SKenneth E. Jansen end 733*59599516SKenneth E. Jansen 734*59599516SKenneth E. Jansen 735