50 integer*4,
dimension(nn,nn,nn) :: yon
52 real*8 :: exx,eyy,ezz,exy,eyz,ezx
54 real*8 :: invar1,invar2,invar3
55 real*8 :: strain_i,strain_ii,strain_iii
56 real*8 :: r_average_elem
58 real*8,
dimension(nn,nn,nn) :: duxdx,duxdy,duxdz,duydx,duydy,duydz
59 real*8,
dimension(nn,nn,nn) :: r
62 r_average_elem = 0.0d0
68 if (yon(i,j,k).eq.1)
then
77 exy = .5 * (duxdy(i,j,k) + duydx(i,j,k))
78 eyz = .5 * (duydz(i,j,k) + duzdy(i,j,k))
79 ezx = .5 * (duzdx(i,j,k) + duxdz(i,j,k))
81 invar1 = exx + eyy + ezz
83 invar2 = exx * eyy + &
90 invar3 = exx * eyy * ezz + &
91 2 * exy * eyz * (-ezx) - &
99 call cubic(-invar1,invar2,-invar3,&
100 strain_i,strain_ii,strain_iii)
109 r(i,j,k) = (max(strain_i,strain_ii,strain_iii) -
110 min(strain_i,strain_ii,strain_iii
112 r_average_elem = r_average_elem + r(i,j,k)
123 r_average_elem = r_average_elem / (nn*nn*nn)
129 r(i,j,k) = r_average_elem
subroutine make_invariants_and_main_strain(nn, duxdx, duydx, duzdx, duxdy, duydy, duzdy, duxdz, duydz, duzdz, r, yon)
Makes invariants for the strain tensor and computes the main strain.