1*59599516SKenneth E. Jansenc----------------------------------------------------------------------- 2*59599516SKenneth E. Jansenc 3*59599516SKenneth E. Jansenc compute the metrics of the mapping from global to local 4*59599516SKenneth E. Jansenc coordinates and the jacobian of the mapping (weighted by 5*59599516SKenneth E. Jansenc the quadrature weight 6*59599516SKenneth E. Jansenc 7*59599516SKenneth E. Jansenc----------------------------------------------------------------------- 8*59599516SKenneth E. Jansen subroutine e3metric( xl, shgl, dxidx, 9*59599516SKenneth E. Jansen & shg, WdetJ) 10*59599516SKenneth E. Jansen 11*59599516SKenneth E. Jansen include "common.h" 12*59599516SKenneth E. Jansen 13*59599516SKenneth E. Jansen real*8 xl(npro,nenl,nsd), shgl(npro,nsd,nshl), 14*59599516SKenneth E. Jansen & dxidx(npro,nsd,nsd), shg(npro,nshl,nsd), 15*59599516SKenneth E. Jansen & WdetJ(npro) 16*59599516SKenneth E. Jansen 17*59599516SKenneth E. Jansen real*8 dxdxi(npro,nsd,nsd), tmp(npro) 18*59599516SKenneth E. Jansen 19*59599516SKenneth E. Jansenc 20*59599516SKenneth E. Jansenc.... compute the deformation gradient 21*59599516SKenneth E. Jansenc 22*59599516SKenneth E. Jansen dxdxi = zero 23*59599516SKenneth E. Jansenc 24*59599516SKenneth E. Jansen do n = 1, nenl 25*59599516SKenneth E. Jansen dxdxi(:,1,1) = dxdxi(:,1,1) + xl(:,n,1) * shgl(:,1,n) 26*59599516SKenneth E. Jansen dxdxi(:,1,2) = dxdxi(:,1,2) + xl(:,n,1) * shgl(:,2,n) 27*59599516SKenneth E. Jansen dxdxi(:,1,3) = dxdxi(:,1,3) + xl(:,n,1) * shgl(:,3,n) 28*59599516SKenneth E. Jansen dxdxi(:,2,1) = dxdxi(:,2,1) + xl(:,n,2) * shgl(:,1,n) 29*59599516SKenneth E. Jansen dxdxi(:,2,2) = dxdxi(:,2,2) + xl(:,n,2) * shgl(:,2,n) 30*59599516SKenneth E. Jansen dxdxi(:,2,3) = dxdxi(:,2,3) + xl(:,n,2) * shgl(:,3,n) 31*59599516SKenneth E. Jansen dxdxi(:,3,1) = dxdxi(:,3,1) + xl(:,n,3) * shgl(:,1,n) 32*59599516SKenneth E. Jansen dxdxi(:,3,2) = dxdxi(:,3,2) + xl(:,n,3) * shgl(:,2,n) 33*59599516SKenneth E. Jansen dxdxi(:,3,3) = dxdxi(:,3,3) + xl(:,n,3) * shgl(:,3,n) 34*59599516SKenneth E. Jansen enddo 35*59599516SKenneth E. Jansenc 36*59599516SKenneth E. Jansenc.... compute the inverse of deformation gradient 37*59599516SKenneth E. Jansenc 38*59599516SKenneth E. Jansen dxidx(:,1,1) = dxdxi(:,2,2) * dxdxi(:,3,3) 39*59599516SKenneth E. Jansen & - dxdxi(:,3,2) * dxdxi(:,2,3) 40*59599516SKenneth E. Jansen dxidx(:,1,2) = dxdxi(:,3,2) * dxdxi(:,1,3) 41*59599516SKenneth E. Jansen & - dxdxi(:,1,2) * dxdxi(:,3,3) 42*59599516SKenneth E. Jansen dxidx(:,1,3) = dxdxi(:,1,2) * dxdxi(:,2,3) 43*59599516SKenneth E. Jansen & - dxdxi(:,1,3) * dxdxi(:,2,2) 44*59599516SKenneth E. Jansen tmp = one / ( dxidx(:,1,1) * dxdxi(:,1,1) 45*59599516SKenneth E. Jansen & + dxidx(:,1,2) * dxdxi(:,2,1) 46*59599516SKenneth E. Jansen & + dxidx(:,1,3) * dxdxi(:,3,1) ) 47*59599516SKenneth E. Jansen dxidx(:,1,1) = dxidx(:,1,1) * tmp 48*59599516SKenneth E. Jansen dxidx(:,1,2) = dxidx(:,1,2) * tmp 49*59599516SKenneth E. Jansen dxidx(:,1,3) = dxidx(:,1,3) * tmp 50*59599516SKenneth E. Jansen dxidx(:,2,1) = (dxdxi(:,2,3) * dxdxi(:,3,1) 51*59599516SKenneth E. Jansen & - dxdxi(:,2,1) * dxdxi(:,3,3)) * tmp 52*59599516SKenneth E. Jansen dxidx(:,2,2) = (dxdxi(:,1,1) * dxdxi(:,3,3) 53*59599516SKenneth E. Jansen & - dxdxi(:,3,1) * dxdxi(:,1,3)) * tmp 54*59599516SKenneth E. Jansen dxidx(:,2,3) = (dxdxi(:,2,1) * dxdxi(:,1,3) 55*59599516SKenneth E. Jansen & - dxdxi(:,1,1) * dxdxi(:,2,3)) * tmp 56*59599516SKenneth E. Jansen dxidx(:,3,1) = (dxdxi(:,2,1) * dxdxi(:,3,2) 57*59599516SKenneth E. Jansen & - dxdxi(:,2,2) * dxdxi(:,3,1)) * tmp 58*59599516SKenneth E. Jansen dxidx(:,3,2) = (dxdxi(:,3,1) * dxdxi(:,1,2) 59*59599516SKenneth E. Jansen & - dxdxi(:,1,1) * dxdxi(:,3,2)) * tmp 60*59599516SKenneth E. Jansen dxidx(:,3,3) = (dxdxi(:,1,1) * dxdxi(:,2,2) 61*59599516SKenneth E. Jansen & - dxdxi(:,1,2) * dxdxi(:,2,1)) * tmp 62*59599516SKenneth E. Jansenc 63*59599516SKenneth E. Jansen WdetJ = Qwt(lcsyst,intp) / tmp 64*59599516SKenneth E. Jansenc 65*59599516SKenneth E. Jansenc.... compute the global gradient of shape-functions 66*59599516SKenneth E. Jansenc 67*59599516SKenneth E. Jansen do n = 1, nshl 68*59599516SKenneth E. Jansen shg(:,n,1) = shgl(:,1,n) * dxidx(:,1,1) + 69*59599516SKenneth E. Jansen & shgl(:,2,n) * dxidx(:,2,1) + 70*59599516SKenneth E. Jansen & shgl(:,3,n) * dxidx(:,3,1) 71*59599516SKenneth E. Jansen shg(:,n,2) = shgl(:,1,n) * dxidx(:,1,2) + 72*59599516SKenneth E. Jansen & shgl(:,2,n) * dxidx(:,2,2) + 73*59599516SKenneth E. Jansen & shgl(:,3,n) * dxidx(:,3,2) 74*59599516SKenneth E. Jansen shg(:,n,3) = shgl(:,1,n) * dxidx(:,1,3) + 75*59599516SKenneth E. Jansen & shgl(:,2,n) * dxidx(:,2,3) + 76*59599516SKenneth E. Jansen & shgl(:,3,n) * dxidx(:,3,3) 77*59599516SKenneth E. Jansen enddo 78*59599516SKenneth E. Jansen 79*59599516SKenneth E. Jansen return 80*59599516SKenneth E. Jansen end 81*59599516SKenneth E. Jansen 82*59599516SKenneth E. Jansen 83*59599516SKenneth E. Jansen 84