xref: /phasta/phSolver/compressible/e3visc.f (revision 779e4b51fc2aad517e324269f1248fd2a51a661a)
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