1*59599516SKenneth E. Jansen subroutine e3massl (bcool, shape, WdetJ, A0, 2*59599516SKenneth E. Jansen & EGmass ) 3*59599516SKenneth E. Jansenc 4*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 5*59599516SKenneth E. Jansenc This routine calculates the time contribution to the LHS tangent 6*59599516SKenneth E. Jansenc mass matrix. 7*59599516SKenneth E. Jansenc 8*59599516SKenneth E. Jansenc input: 9*59599516SKenneth E. Jansenc shape (npro,nshl) : element shape functions 10*59599516SKenneth E. Jansenc WdetJ (npro) : weighted Jacobian determinant 11*59599516SKenneth E. Jansenc A0 (npro) : weighted Jacobian matrix 12*59599516SKenneth E. Jansenc EGmass (npro,nedof,nedof) : partial LHS matrix 13*59599516SKenneth E. Jansenc 14*59599516SKenneth E. Jansenc output: 15*59599516SKenneth E. Jansenc EGmass (npro,nedof,nedof) : partial LHS matrix 16*59599516SKenneth E. Jansenc 17*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 18*59599516SKenneth E. Jansenc 19*59599516SKenneth E. Jansen include "common.h" 20*59599516SKenneth E. Jansenc 21*59599516SKenneth E. Jansen dimension A0(npro,nflow,nflow), shape(npro,nshl), 22*59599516SKenneth E. Jansen & WdetJ(npro), EGmass(npro,nedof,nedof) 23*59599516SKenneth E. Jansenc 24*59599516SKenneth E. Jansen dimension fact(npro,5), temp(npro), 25*59599516SKenneth E. Jansen & shpij(npro), bcool(npro) 26*59599516SKenneth E. Jansenc 27*59599516SKenneth E. Jansenc.... ----------------------------> LHS <---------------------------- 28*59599516SKenneth E. Jansenc 29*59599516SKenneth E. Jansen temp = WdetJ * almi/gami/alfi*Dtgl 30*59599516SKenneth E. Jansen bcool = WdetJ * bcool ! note that bcool is not used after this 31*59599516SKenneth E. Jansen ! (if we got in here at least). 32*59599516SKenneth E. Jansenc 33*59599516SKenneth E. Jansenc.... loop through columns (nodes j) and rows (nodes i) 34*59599516SKenneth E. Jansenc 35*59599516SKenneth E. Jansen do j = 1, nshl 36*59599516SKenneth E. Jansen j0 = nflow * (j - 1) 37*59599516SKenneth E. Jansen 38*59599516SKenneth E. Jansen do i = 1, nshl 39*59599516SKenneth E. Jansen i0 = nflow * (i - 1) 40*59599516SKenneth E. Jansenc 41*59599516SKenneth E. Jansenc.... get the factor 42*59599516SKenneth E. Jansenc 43*59599516SKenneth E. Jansen shpij = shape(:,i) * shape(:,j) 44*59599516SKenneth E. Jansen fact(:,1) = shpij * (temp + bcool*spongeContinuity) 45*59599516SKenneth E. Jansen fact(:,2) = shpij * (temp + bcool*spongeMomentum1) 46*59599516SKenneth E. Jansen fact(:,3) = shpij * (temp + bcool*spongeMomentum2) 47*59599516SKenneth E. Jansen fact(:,4) = shpij * (temp + bcool*spongeMomentum3) 48*59599516SKenneth E. Jansen fact(:,5) = shpij * (temp + bcool*spongeEnergy) 49*59599516SKenneth E. Jansenc 50*59599516SKenneth E. Jansenc.... loop through d.o.f.'s 51*59599516SKenneth E. Jansenc 52*59599516SKenneth E. Jansen do jdof = 1, nflow 53*59599516SKenneth E. Jansen EGmass(:,i0+1,j0+jdof) = EGmass(:,i0+1,j0+jdof) 54*59599516SKenneth E. Jansen & + fact(:,1) * A0(:,1,jdof) 55*59599516SKenneth E. Jansen EGmass(:,i0+2,j0+jdof) = EGmass(:,i0+2,j0+jdof) 56*59599516SKenneth E. Jansen & + fact(:,2) * A0(:,2,jdof) 57*59599516SKenneth E. Jansen EGmass(:,i0+3,j0+jdof) = EGmass(:,i0+3,j0+jdof) 58*59599516SKenneth E. Jansen & + fact(:,3) * A0(:,3,jdof) 59*59599516SKenneth E. Jansen EGmass(:,i0+4,j0+jdof) = EGmass(:,i0+4,j0+jdof) 60*59599516SKenneth E. Jansen & + fact(:,4) * A0(:,4,jdof) 61*59599516SKenneth E. Jansen EGmass(:,i0+5,j0+jdof) = EGmass(:,i0+5,j0+jdof) 62*59599516SKenneth E. Jansen & + fact(:,5) * A0(:,5,jdof) 63*59599516SKenneth E. Jansen enddo 64*59599516SKenneth E. Jansenc 65*59599516SKenneth E. Jansenc.... end loop on row nodes 66*59599516SKenneth E. Jansenc 67*59599516SKenneth E. Jansen enddo 68*59599516SKenneth E. Jansenc 69*59599516SKenneth E. Jansenc.... end loop on column nodes 70*59599516SKenneth E. Jansenc 71*59599516SKenneth E. Jansen enddo 72*59599516SKenneth E. Jansenc 73*59599516SKenneth E. Jansenc.... return 74*59599516SKenneth E. Jansenc 75*59599516SKenneth E. Jansen return 76*59599516SKenneth E. Jansen end 77*59599516SKenneth E. Jansenc 78*59599516SKenneth E. Jansenc 79*59599516SKenneth E. Jansenc 80*59599516SKenneth E. Jansen subroutine e3masslSclr (shape, WdetJ, A0t, 81*59599516SKenneth E. Jansen & EGmasst,srcp) 82*59599516SKenneth E. Jansenc 83*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 84*59599516SKenneth E. Jansenc This routine calculates the time contribution to the LHS tangent 85*59599516SKenneth E. Jansenc mass matrix. 86*59599516SKenneth E. Jansenc 87*59599516SKenneth E. Jansenc input: 88*59599516SKenneth E. Jansenc shape (npro,nshl) : element shape functions 89*59599516SKenneth E. Jansenc WdetJ (npro) : weighted Jacobian determinant 90*59599516SKenneth E. Jansenc A0t (npro) : weighted Jacobian matrix 91*59599516SKenneth E. Jansenc EGmasst (npro,nshape, nshape): partial LHS matrix 92*59599516SKenneth E. Jansenc 93*59599516SKenneth E. Jansenc output: 94*59599516SKenneth E. Jansenc EGmasst (npro,nshape,nshape) : partial LHS matrix 95*59599516SKenneth E. Jansenc 96*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 97*59599516SKenneth E. Jansenc 98*59599516SKenneth E. Jansen include "common.h" 99*59599516SKenneth E. Jansenc 100*59599516SKenneth E. Jansen dimension A0t(npro), shape(npro,nshl), 101*59599516SKenneth E. Jansen & WdetJ(npro), EGmasst(npro,nshape,nshape) 102*59599516SKenneth E. Jansenc 103*59599516SKenneth E. Jansen dimension fact(npro), temp(npro), 104*59599516SKenneth E. Jansen & shpij(npro), srcp(npro) 105*59599516SKenneth E. Jansenc 106*59599516SKenneth E. Jansenc.... ----------------------------> LHS <---------------------------- 107*59599516SKenneth E. Jansenc 108*59599516SKenneth E. Jansen temp = WdetJ * almi/gami/alfi*Dtgl 109*59599516SKenneth E. Jansenc 110*59599516SKenneth E. Jansenc.... loop through columns (nodes j) and rows (nodes i) 111*59599516SKenneth E. Jansenc 112*59599516SKenneth E. Jansen do j = 1, nshl 113*59599516SKenneth E. Jansen do i = 1, nshl 114*59599516SKenneth E. Jansenc 115*59599516SKenneth E. Jansenc.... get the factor 116*59599516SKenneth E. Jansenc 117*59599516SKenneth E. Jansen shpij = shape(:,i) * shape(:,j) 118*59599516SKenneth E. Jansen fact = shpij * temp 119*59599516SKenneth E. Jansen EGmasst(:,i,j) = EGmasst(:,i,j) + fact * A0t(:) 120*59599516SKenneth E. Jansen EGmasst(:,i,j) = EGmasst(:,i,j) 121*59599516SKenneth E. Jansen & - shpij*WdetJ(:) * srcp(:) 122*59599516SKenneth E. Jansenc 123*59599516SKenneth E. Jansenc.... end loop on row nodes 124*59599516SKenneth E. Jansenc 125*59599516SKenneth E. Jansen enddo 126*59599516SKenneth E. Jansenc 127*59599516SKenneth E. Jansenc.... end loop on column nodes 128*59599516SKenneth E. Jansenc 129*59599516SKenneth E. Jansen enddo 130*59599516SKenneth E. Jansenc 131*59599516SKenneth E. Jansenc.... return 132*59599516SKenneth E. Jansenc 133*59599516SKenneth E. Jansen return 134*59599516SKenneth E. Jansen end 135*59599516SKenneth E. Jansen 136