132 integer ithermal,icmd,kode,ielas,iel,iint,nstate_,mi(*),iorien,
133 & ipkon(*),kel(4,21),n,matz,ier,i,j,kal(2,6),j1,j2,j3,j4
135 real*8 elconloc(21),stiff(21),emec(6),emec0(6),beta(6),stre(6),
136 & vj,t1l,dtime,xkl(3,3),xokl(3,3),voj,pgauss(3),orab(7,*),
137 & time,ttime,pnewdt,xstate(nstate_,mi(1),*),e(3,3),we(3),
138 & xstateini(nstate_,mi(1),*),wc(3),z(3,3),fv1(3),fv2(3),eps,
139 & pi,young,fla(3),xm1(3,3),xm2(3,3),xm3(3,3),dfla(3),a(21),b(21),
140 & d(3,3),c(3,3),xmm1(21),xmm2(21),xmm3(21),ca(3),cb(3)
142 kal=reshape((/1,1,2,2,3,3,1,2,1,3,2,3/),(/2,6/))
144 kel=reshape((/1,1,1,1,1,1,2,2,2,2,2,2,1,1,3,3,2,2,3,3,3,3,3,3,
145 & 1,1,1,2,2,2,1,2,3,3,1,2,1,2,1,2,1,1,1,3,2,2,1,3,
146 & 3,3,1,3,1,2,1,3,1,3,1,3,1,1,2,3,2,2,2,3,3,3,2,3,
147 & 1,2,2,3,1,3,2,3,2,3,2,3/),(/4,21/))
149 d=reshape((/1.d0,0.d0,0.d0,0.d0,1.d0,0.d0,0.d0,0.d0,1.d0/),
158 if(elconloc(1).lt.1.d-30)
then 159 write(*,*)
'*ERROR in umat_compression_only: the Young modulus' 160 write(*,*)
' is too small' 164 if(elconloc(2).lt.1.d-30)
then 165 write(*,*)
'*ERROR in umat_compression_only: maximum tension' 166 write(*,*)
' value is too small' 170 eps=elconloc(2)*pi/young
191 call rs(n,n,e,we,matz,z,fv1,fv2,ier)
195 & *ERROR calculating the eigenvalues/vectors in umat_tension' 203 wc(i)=2.d0*we(i)+1.d0
210 if((dabs(we(3)-we(2)).lt.1.d-10).and.
211 & (dabs(we(2)-we(1)).lt.1.d-10))
then 212 fla(1)=young*we(1)*(0.5d0+datan(-we(1)/eps)/pi)
223 dfla(1)=young*((0.5d0+datan(-we(1)/eps)/pi)/2.d0
224 & -we(1)/(2.d0*pi*eps*(1.d0+(we(1)/eps)**2)))
231 stiff(j)=dfla(1)*(d(j3,j1)*d(j4,j2)+d(j3,j2)*d(j4,j1))
239 elseif(dabs(we(3)-we(2)).lt.1.d-10)
then 246 xm1(i,j)=z(i,1)*z(j,1)
254 fla(i)=young*we(i)*(0.5d0+datan(-we(i)/eps)/pi)
262 stre(j)=fla(1)*xm1(j1,j2)+fla(2)*(d(j1,j2)-xm1(j1,j2))
275 dfla(i)=young*((0.5d0+datan(-we(i)/eps)/pi)/2.d0
276 & -we(i)/(2.d0*pi*eps*(1.d0+(we(i)/eps)**2)))
289 xmm1(j)=xm1(j1,j2)*xm1(j3,j4)
293 a(j)=(d(j3,j1)*d(j4,j2)+d(j3,j2)*d(j4,j1))/2.d0
294 b(j)=(d(j3,j1)*xm1(j4,j2)+d(j4,j1)*xm1(j3,j2)+
295 & d(j4,j2)*xm1(j1,j3)+d(j3,j2)*xm1(j1,j4))/2.d0
299 stiff(j)=2.d0*(dfla(1)*xmm1(j)
300 & +dfla(2)*(a(j)+xmm1(j)-b(j))
301 & +(fla(1)-fla(2))*(b(j)-2.d0*xmm1(j))
302 & /(2.d0*(we(1)-we(2))))
310 elseif(dabs(we(2)-we(1)).lt.1.d-10)
then 317 xm3(i,j)=z(i,3)*z(j,3)
325 fla(i)=young*we(i)*(0.5d0+datan(-we(i)/eps)/pi)
333 stre(j)=fla(3)*xm3(j1,j2)+fla(2)*(d(j1,j2)-xm3(j1,j2))
346 dfla(i)=young*((0.5d0+datan(-we(i)/eps)/pi)/2.d0
347 & -we(i)/(2.d0*pi*eps*(1.d0+(we(i)/eps)**2)))
360 xmm3(j)=xm3(j1,j2)*xm3(j3,j4)
364 a(j)=(d(j3,j1)*d(j4,j2)+d(j3,j2)*d(j4,j1))/2.d0
365 b(j)=(d(j3,j1)*xm3(j4,j2)+d(j4,j1)*xm3(j3,j2)+
366 & d(j4,j2)*xm3(j1,j3)+d(j3,j2)*xm3(j1,j4))/2.d0
370 stiff(j)=2.d0*(dfla(3)*xmm3(j)
371 & +dfla(2)*(a(j)+xmm3(j)-b(j))
372 & +(fla(2)-fla(3))*(b(j)-2.d0*xmm3(j))
373 & /(2.d0*(we(2)-we(3))))
388 xm1(i,j)=z(i,1)*z(j,1)
389 xm2(i,j)=z(i,2)*z(j,2)
390 xm3(i,j)=z(i,3)*z(j,3)
398 fla(i)=young*we(i)*(0.5d0+datan(-we(i)/eps)/pi)
406 stre(j)=fla(1)*xm1(j1,j2)+fla(2)*xm2(j1,j2)
420 dfla(i)=young*((0.5d0+datan(-we(i)/eps)/pi)/2.d0
421 & -we(i)/(2.d0*pi*eps*(1.d0+(we(i)/eps)**2)))
424 cb(1)=1.d0/(4.d0*(we(1)-we(2))*(we(1)-we(3)))
425 ca(1)=-(wc(2)+wc(3))*cb(1)
426 cb(2)=1.d0/(4.d0*(we(2)-we(3))*(we(2)-we(1)))
427 ca(2)=-(wc(3)+wc(1))*cb(2)
428 cb(3)=1.d0/(4.d0*(we(3)-we(1))*(we(3)-we(2)))
429 ca(3)=-(wc(1)+wc(2))*cb(3)
450 xmm1(j)=xm1(j1,j2)*xm1(j3,j4)
451 xmm2(j)=xm2(j1,j2)*xm2(j3,j4)
452 xmm3(j)=xm3(j1,j2)*xm3(j3,j4)
459 a(j)=(d(j3,j1)*d(j4,j2)+d(j3,j2)*d(j4,j1))/2.d0
460 & -xmm1(j)-xmm2(j)-xmm3(j)
461 b(j)=(d(j3,j1)*c(j4,j2)+d(j4,j1)*c(j3,j2)+
462 & d(j4,j2)*c(j1,j3)+d(j3,j2)*c(j1,j4))/2.d0
463 & -2.d0*(wc(1)*xmm1(j)+wc(2)*xmm2(j)+wc(3)*xmm3(j))
467 stiff(j)=2.d0*(dfla(1)*xmm1(j)+dfla(2)*xmm2(j)+
469 & +fla(1)*(cb(1)*b(j)+ca(1)*a(j))
470 & +fla(2)*(cb(2)*b(j)+ca(2)*a(j))
471 & +fla(3)*(cb(3)*b(j)+ca(3)*a(j)))
subroutine rs(nm, n, a, w, matz, z, fv1, fv2, ierr)
Definition: rs.f:27