118 integer exitcriterion
122 integer ithermal,icmd,kode,ielas,iel,iint,nstate_,mi(*),iorien,
123 & i,j,ipiv(6),info,neq,lda,ldb,j1,j2,j3,j4,j5,j6,j7,j8,
124 & nrhs,iplas,kel(4,21),iloop,leximp,lend,layer,kspt,kstep,
127 real*8 ep0(6),epqini,ep(6),b,pn(6),dg,ddg,c(21),x(21),cm1(21),
128 & stri(6),htri,sg(6),r(13),ee(6),dd,gl(6,6),gr(6,6),c0,
c1,c2,
129 & skl(3,3),gcreep,gm1,ya(3,3,3,3),dsg,detc,strinv,depvisc,
130 & depq,svm,dsvm,dg1,dg2,fu,fu1,fu2,expon,ec(2),pnewdt,
131 & timeabq(2),
r1(13),ep1(6),gl1(6,6),sg1(6),ckl(3,3),
132 & elconloc(21),stiff(21),emec(6),emec0(6),beta(6),stre(6),
133 & vj,t1l,dtime,xkl(3,3),xokl(3,3),voj,pgauss(3),orab(7,*),
134 & time,ttime,decra(5),deswa(5),serd,esw(2),p,predef(1),dpred(1),
135 & dtemp,xstate(nstate_,mi(1),*),xstateini(nstate_,mi(1),*)
137 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,
138 & 1,1,1,2,2,2,1,2,3,3,1,2,1,2,1,2,1,1,1,3,2,2,1,3,
139 & 3,3,1,3,1,2,1,3,1,3,1,3,1,1,2,3,2,2,2,3,3,3,2,3,
140 & 1,2,2,3,1,3,2,3,2,3,2,3/),(/4,21/))
145 if(ithermal.eq.0)
then 146 write(*,*)
'*ERROR in umat_aniso_creep: no temperature defined;' 147 write(*,*)
' a creep calculation without temperature' 148 write(*,*)
' does not make sense' 178 c(j)=c(j)+ya(j5,j6,j7,j8)*
179 & skl(j1,j5)*skl(j2,j6)*skl(j3,j7)*skl(j4,j8)
196 epqini=xstateini(1,iint,iel)
201 ep0(i)=xstateini(1+i,iint,iel)
212 stri(1)=c(1)*ee(1)+c(2)*ee(2)+c(4)*ee(3)+
213 & 2.d0*(c(7)*ee(4)+c(11)*ee(5)+c(16)*ee(6))
215 stri(2)=c(2)*ee(1)+c(3)*ee(2)+c(5)*ee(3)+
216 & 2.d0*(c(8)*ee(4)+c(12)*ee(5)+c(17)*ee(6))
218 stri(3)=c(4)*ee(1)+c(5)*ee(2)+c(6)*ee(3)+
219 & 2.d0*(c(9)*ee(4)+c(13)*ee(5)+c(18)*ee(6))
221 stri(4)=c(7)*ee(1)+c(8)*ee(2)+c(9)*ee(3)+
222 & 2.d0*(c(10)*ee(4)+c(14)*ee(5)+c(19)*ee(6))
224 stri(5)=c(11)*ee(1)+c(12)*ee(2)+c(13)*ee(3)+
225 & 2.d0*(c(14)*ee(4)+c(15)*ee(5)+c(20)*ee(6))
227 stri(6)=c(16)*ee(1)+c(17)*ee(2)+c(18)*ee(3)+
228 & 2.d0*(c(19)*ee(4)+c(20)*ee(5)+c(21)*ee(6))
231 stri(1)=c(1)*ee(1)+c(2)*ee(2)+c(4)*ee(3)-beta(1)
232 stri(2)=c(2)*ee(1)+c(3)*ee(2)+c(5)*ee(3)-beta(1)
233 stri(3)=c(4)*ee(1)+c(5)*ee(2)+c(6)*ee(3)-beta(1)
234 stri(4)=2.d0*c(7)*ee(4)-beta(4)
235 stri(5)=2.d0*c(8)*ee(5)-beta(5)
236 stri(6)=2.d0*c(9)*ee(6)-beta(6)
241 strinv=(stri(1)+stri(2)+stri(3))/3.d0
248 dsg=dsqrt(sg(1)*sg(1)+sg(2)*sg(2)+sg(3)*sg(3)+
249 & 2.d0*(sg(4)*sg(4)+sg(5)*sg(5)+sg(6)*sg(6)))
259 if(htri.gt.1.d-10)
then 265 if((iplas.eq.0).or.(ielas.eq.1).or.(dtime.lt.1.d-30).or.
266 & ((nmethod.eq.1).and.(ithermal.ne.3)))
then 276 xstate(1,iint,iel)=epqini
278 xstate(1+i,iint,iel)=ep0(i)
369 call dgesv(neq,nrhs,gl,lda,ipiv,gr,ldb,info)
371 write(*,*)
'*ERROR in sc.f: linear equation solver' 372 write(*,*)
' exited with error: info = ',info
398 detc=c(1)*(c(3)*c(6)-c(5)*c(5))-
399 & c(2)*(c(2)*c(6)-c(4)*c(5))+
400 & c(4)*(c(2)*c(5)-c(4)*c(3))
401 cm1(1)=(c(3)*c(6)-c(5)*c(5))/detc
402 cm1(2)=(c(5)*c(4)-c(2)*c(6))/detc
403 cm1(3)=(c(1)*c(6)-c(4)*c(4))/detc
404 cm1(4)=(c(2)*c(5)-c(3)*c(4))/detc
405 cm1(5)=(c(2)*c(4)-c(1)*c(5))/detc
406 cm1(6)=(c(1)*c(3)-c(2)*c(2))/detc
407 cm1(7)=1.d0/(4.d0*c(7))
408 cm1(8)=1.d0/(4.d0*c(8))
409 cm1(9)=1.d0/(4.d0*c(9))
427 stri(1)=c(1)*ee(1)+c(2)*ee(2)+c(4)*ee(3)+
428 & 2.d0*(c(7)*ee(4)+c(11)*ee(5)+c(16)*ee(6))
430 stri(2)=c(2)*ee(1)+c(3)*ee(2)+c(5)*ee(3)+
431 & 2.d0*(c(8)*ee(4)+c(12)*ee(5)+c(17)*ee(6))
433 stri(3)=c(4)*ee(1)+c(5)*ee(2)+c(6)*ee(3)+
434 & 2.d0*(c(9)*ee(4)+c(13)*ee(5)+c(18)*ee(6))
436 stri(4)=c(7)*ee(1)+c(8)*ee(2)+c(9)*ee(3)+
437 & 2.d0*(c(10)*ee(4)+c(14)*ee(5)+c(19)*ee(6))
439 stri(5)=c(11)*ee(1)+c(12)*ee(2)+c(13)*ee(3)+
440 & 2.d0*(c(14)*ee(4)+c(15)*ee(5)+c(20)*ee(6))
442 stri(6)=c(16)*ee(1)+c(17)*ee(2)+c(18)*ee(3)+
443 & 2.d0*(c(19)*ee(4)+c(20)*ee(5)+c(21)*ee(6))
446 stri(1)=c(1)*ee(1)+c(2)*ee(2)+c(4)*ee(3)-beta(1)
447 stri(2)=c(2)*ee(1)+c(3)*ee(2)+c(5)*ee(3)-beta(1)
448 stri(3)=c(4)*ee(1)+c(5)*ee(2)+c(6)*ee(3)-beta(1)
449 stri(4)=2.d0*c(7)*ee(4)-beta(4)
450 stri(5)=2.d0*c(8)*ee(5)-beta(5)
451 stri(6)=2.d0*c(9)*ee(6)-beta(6)
456 strinv=(stri(1)+stri(2)+stri(3))/3.d0
463 dsg=dsqrt(sg(1)*sg(1)+sg(2)*sg(2)+sg(3)*sg(3)+
464 & 2.d0*(sg(4)*sg(4)+sg(5)*sg(5)+sg(6)*sg(6)))
471 timeabq(2)=ttime+time
472 call creep(decra,deswa,xstateini(1,iint,iel),serd,ec,
473 & esw,p,svm,t1l,dtemp,predef,dpred,timeabq,dtime,
474 & amat,leximp,lend,pgauss,nstate_,iel,iint,layer,kspt,
483 if(decra(1).gt.c0*dg)
then 485 if(iloop.gt.1) exitcriterion=1
497 r(i)=ep0(i)-ep(i)+dg*sg(i)
502 if(exitcriterion.eq.1)
exit 503 if((dabs(htri).le.1.d-3).and.
504 & ((iloop.gt.1).and.((dabs(ddg).lt.1.d-10).or.
505 & (dabs(ddg).lt.1.d-3*dabs(dg)))))
then 511 if(dd.le.1.d-10)
then 520 x(1)=b*(
c1-sg(1)*sg(1))
521 x(2)=b*(c2-sg(1)*sg(2))
522 x(3)=b*(
c1-sg(2)*sg(2))
523 x(4)=b*(c2-sg(1)*sg(3))
524 x(5)=b*(c2-sg(2)*sg(3))
525 x(6)=b*(
c1-sg(3)*sg(3))
529 x(10)=b*(.5d0-sg(4)*sg(4))
534 x(15)=b*(.5d0-sg(5)*sg(5))
540 x(21)=b*(.5d0-sg(6)*sg(6))
554 gl(4,4)=cm1(10)+x(10)
555 gl(1,5)=cm1(11)+x(11)
556 gl(2,5)=cm1(12)+x(12)
557 gl(3,5)=cm1(13)+x(13)
558 gl(4,5)=cm1(14)+x(14)
559 gl(5,5)=cm1(15)+x(15)
560 gl(1,6)=cm1(16)+x(16)
561 gl(2,6)=cm1(17)+x(17)
562 gl(3,6)=cm1(18)+x(18)
563 gl(4,6)=cm1(19)+x(19)
564 gl(5,6)=cm1(20)+x(20)
565 gl(6,6)=cm1(21)+x(21)
608 call dgesv(neq,nrhs,gl,lda,ipiv,gr,ldb,info)
610 write(*,*)
'*ERROR in sc.f: linear equation solver' 611 write(*,*)
' exited with error: info = ',info
625 gm1=pn(1)*sg(1)+pn(2)*sg(2)+pn(3)*sg(3)+
626 & (pn(4)*sg(4)+pn(5)*sg(5)+pn(6)*sg(6))
627 gm1=1.d0/(gm1+gcreep)
628 ddg=gm1*(htri-(pn(1)*r(1)+pn(2)*r(2)+pn(3)*r(3)+
629 & (pn(4)*r(4)+pn(5)*r(5)+pn(6)*r(6))))
646 call dgetrs(
'No transpose',neq,nrhs,gl,lda,ipiv,gr,ldb,info)
648 write(*,*)
'*ERROR in sc.f: linear equation solver' 649 write(*,*)
' exited with error: info = ',info
654 ep(1)=ep(1)+cm1(1)*gr(1,1)+cm1(2)*gr(2,1)+cm1(4)*gr(3,1)+
655 & (cm1(7)*gr(4,1)+cm1(11)*gr(5,1)+cm1(16)*gr(6,1))
656 ep(2)=ep(2)+cm1(2)*gr(1,1)+cm1(3)*gr(2,1)+cm1(5)*gr(3,1)+
657 & (cm1(8)*gr(4,1)+cm1(12)*gr(5,1)+cm1(17)*gr(6,1))
658 ep(3)=ep(3)+cm1(4)*gr(1,1)+cm1(5)*gr(2,1)+cm1(6)*gr(3,1)+
659 & (cm1(9)*gr(4,1)+cm1(13)*gr(5,1)+cm1(18)*gr(6,1))
660 ep(4)=ep(4)+cm1(7)*gr(1,1)+cm1(8)*gr(2,1)+cm1(9)*gr(3,1)+
661 & (cm1(10)*gr(4,1)+cm1(14)*gr(5,1)+cm1(19)*gr(6,1))
662 ep(5)=ep(5)+cm1(11)*gr(1,1)+cm1(12)*gr(2,1)+cm1(13)*gr(3,1)+
663 & (cm1(14)*gr(4,1)+cm1(15)*gr(5,1)+cm1(20)*gr(6,1))
664 ep(6)=ep(6)+cm1(16)*gr(1,1)+cm1(17)*gr(2,1)+cm1(18)*gr(3,1)+
665 & (cm1(19)*gr(4,1)+cm1(20)*gr(5,1)+cm1(21)*gr(6,1))
667 ep(1)=ep(1)+cm1(1)*gr(1,1)+cm1(2)*gr(2,1)+cm1(4)*gr(3,1)
668 ep(2)=ep(2)+cm1(2)*gr(1,1)+cm1(3)*gr(2,1)+cm1(5)*gr(3,1)
669 ep(3)=ep(3)+cm1(4)*gr(1,1)+cm1(5)*gr(2,1)+cm1(6)*gr(3,1)
670 ep(4)=ep(4)+cm1(7)*gr(4,1)
671 ep(5)=ep(5)+cm1(8)*gr(5,1)
672 ep(6)=ep(6)+cm1(9)*gr(6,1)
681 if((iloop.gt.15).or.(dg.le.0.d0))
then 691 if(iloop.gt.100)
then 713 stri(1)=c(1)*ee(1)+c(2)*ee(2)+c(4)*ee(3)+
714 & 2.d0*(c(7)*ee(4)+c(11)*ee(5)+c(16)*ee(6))
716 stri(2)=c(2)*ee(1)+c(3)*ee(2)+c(5)*ee(3)+
717 & 2.d0*(c(8)*ee(4)+c(12)*ee(5)+c(17)*ee(6))
719 stri(3)=c(4)*ee(1)+c(5)*ee(2)+c(6)*ee(3)+
720 & 2.d0*(c(9)*ee(4)+c(13)*ee(5)+c(18)*ee(6))
722 stri(4)=c(7)*ee(1)+c(8)*ee(2)+c(9)*ee(3)+
723 & 2.d0*(c(10)*ee(4)+c(14)*ee(5)+c(19)*ee(6))
725 stri(5)=c(11)*ee(1)+c(12)*ee(2)+c(13)*ee(3)+
726 & 2.d0*(c(14)*ee(4)+c(15)*ee(5)+c(20)*ee(6))
728 stri(6)=c(16)*ee(1)+c(17)*ee(2)+c(18)*ee(3)+
729 & 2.d0*(c(19)*ee(4)+c(20)*ee(5)+c(21)*ee(6))
732 stri(1)=c(1)*ee(1)+c(2)*ee(2)+c(4)*ee(3)-beta(1)
733 stri(2)=c(2)*ee(1)+c(3)*ee(2)+c(5)*ee(3)-beta(1)
734 stri(3)=c(4)*ee(1)+c(5)*ee(2)+c(6)*ee(3)-beta(1)
735 stri(4)=2.d0*c(7)*ee(4)-beta(4)
736 stri(5)=2.d0*c(8)*ee(5)-beta(5)
737 stri(6)=2.d0*c(9)*ee(6)-beta(6)
742 strinv=(stri(1)+stri(2)+stri(3))/3.d0
749 dsg=dsqrt(sg(1)*sg(1)+sg(2)*sg(2)+sg(3)*sg(3)+
750 & 2.d0*(sg(4)*sg(4)+sg(5)*sg(5)+sg(6)*sg(6)))
757 timeabq(2)=ttime+time
758 call creep(decra,deswa,xstateini(1,iint,iel),serd,ec,
759 & esw,p,svm,t1l,dtemp,predef,dpred,timeabq,dtime,
760 & amat,leximp,lend,pgauss,nstate_,iel,iint,layer,kspt,
762 if(decra(1).gt.c0*dg)
then 764 if(abs(iloop).gt.2) exitcriterion=1
781 r(i)=ep0(i)-ep(i)+dg*sg(i)
786 if(exitcriterion.eq.1)
exit loop
787 if((dabs(htri).le.1.d-3).and.
788 & ((iloop.gt.2).and.((dabs(ddg).lt.1.d-10).or.
789 & (dabs(ddg).lt.1.d-3*dabs(dg)))))
then 795 if(dd.le.1.d-10)
then 799 if(iloop.gt.100)
then 811 x(1)=b*(
c1-sg(1)*sg(1))
812 x(2)=b*(c2-sg(1)*sg(2))
813 x(3)=b*(
c1-sg(2)*sg(2))
814 x(4)=b*(c2-sg(1)*sg(3))
815 x(5)=b*(c2-sg(2)*sg(3))
816 x(6)=b*(
c1-sg(3)*sg(3))
820 x(10)=b*(.5d0-sg(4)*sg(4))
825 x(15)=b*(.5d0-sg(5)*sg(5))
831 x(21)=b*(.5d0-sg(6)*sg(6))
845 gl(4,4)=cm1(10)+x(10)
846 gl(1,5)=cm1(11)+x(11)
847 gl(2,5)=cm1(12)+x(12)
848 gl(3,5)=cm1(13)+x(13)
849 gl(4,5)=cm1(14)+x(14)
850 gl(5,5)=cm1(15)+x(15)
851 gl(1,6)=cm1(16)+x(16)
852 gl(2,6)=cm1(17)+x(17)
853 gl(3,6)=cm1(18)+x(18)
854 gl(4,6)=cm1(19)+x(19)
855 gl(5,6)=cm1(20)+x(20)
856 gl(6,6)=cm1(21)+x(21)
899 call dgesv(neq,nrhs,gl,lda,ipiv,gr,ldb,info)
901 write(*,*)
'*ERROR in sc.f: linear equation solver' 902 write(*,*)
' exited with error: info = ',info
916 gm1=pn(1)*sg(1)+pn(2)*sg(2)+pn(3)*sg(3)+
917 & (pn(4)*sg(4)+pn(5)*sg(5)+pn(6)*sg(6))
918 gm1=1.d0/(gm1+gcreep)
919 fu=(htri-(pn(1)*r(1)+pn(2)*r(2)+pn(3)*r(3)+
920 & (pn(4)*r(4)+pn(5)*r(5)+pn(6)*r(6))))
937 elseif((iloop.eq.2).or.(iloop.lt.0))
then 938 if(fu*fu1.lt.0.d0)
then 962 if(dabs(fu).gt.dabs(fu1)) exitcriterion=1
973 if(dg.gt.10.1d0)
then 975 &
'*ERROR: no convergence in umat_aniso_creep' 990 if(fu*fu1.ge.0.d0)
then 1036 call dgetrs(
'No transpose',neq,nrhs,gl,lda,ipiv,gr,ldb,
1039 write(*,*)
'*ERROR in sc.f: linear equation solver' 1040 write(*,*)
' exited with error: info = ',info
1044 if(iorien.gt.0)
then 1045 ep(1)=ep(1)+cm1(1)*gr(1,1)+cm1(2)*gr(2,1)+
1047 & (cm1(7)*gr(4,1)+cm1(11)*gr(5,1)+
1049 ep(2)=ep(2)+cm1(2)*gr(1,1)+cm1(3)*gr(2,1)+
1051 & (cm1(8)*gr(4,1)+cm1(12)*gr(5,1)+
1053 ep(3)=ep(3)+cm1(4)*gr(1,1)+cm1(5)*gr(2,1)
1055 & (cm1(9)*gr(4,1)+cm1(13)*gr(5,1)+
1057 ep(4)=ep(4)+cm1(7)*gr(1,1)+cm1(8)*gr(2,1)+
1059 & (cm1(10)*gr(4,1)+cm1(14)*gr(5,1)+
1061 ep(5)=ep(5)+cm1(11)*gr(1,1)+cm1(12)*gr(2,1)+
1063 & (cm1(14)*gr(4,1)+cm1(15)*gr(5,1)+
1065 ep(6)=ep(6)+cm1(16)*gr(1,1)+cm1(17)*gr(2,1)+
1067 & (cm1(19)*gr(4,1)+cm1(20)*gr(5,1)+
1070 ep(1)=ep(1)+cm1(1)*gr(1,1)+cm1(2)*gr(2,1)+
1072 ep(2)=ep(2)+cm1(2)*gr(1,1)+cm1(3)*gr(2,1)+
1074 ep(3)=ep(3)+cm1(4)*gr(1,1)+cm1(5)*gr(2,1)+
1076 ep(4)=ep(4)+cm1(7)*gr(4,1)
1077 ep(5)=ep(5)+cm1(8)*gr(5,1)
1078 ep(6)=ep(6)+cm1(9)*gr(6,1)
1129 call dgetrs(
'No transpose',neq,nrhs,gl,lda,ipiv,gr,ldb,info)
1131 write(*,*)
'*ERROR in sc.f: linear equation solver' 1132 write(*,*)
' exited with error: info = ',info
1136 stiff(1)=gr(1,1)-gm1*pn(1)*pn(1)
1137 stiff(2)=gr(1,2)-gm1*pn(1)*pn(2)
1138 stiff(3)=gr(2,2)-gm1*pn(2)*pn(2)
1139 stiff(4)=gr(1,3)-gm1*pn(1)*pn(3)
1140 stiff(5)=gr(2,3)-gm1*pn(2)*pn(3)
1141 stiff(6)=gr(3,3)-gm1*pn(3)*pn(3)
1142 stiff(7)=(gr(1,4)-gm1*pn(1)*pn(4))/2.d0
1143 stiff(8)=(gr(2,4)-gm1*pn(2)*pn(4))/2.d0
1144 stiff(9)=(gr(3,4)-gm1*pn(3)*pn(4))/2.d0
1145 stiff(10)=(gr(4,4)-gm1*pn(4)*pn(4))/4.d0
1146 stiff(11)=(gr(1,5)-gm1*pn(1)*pn(5))/2.d0
1147 stiff(12)=(gr(2,5)-gm1*pn(2)*pn(5))/2.d0
1148 stiff(13)=(gr(3,5)-gm1*pn(3)*pn(5))/2.d0
1149 stiff(14)=(gr(4,5)-gm1*pn(4)*pn(5))/4.d0
1150 stiff(15)=(gr(5,5)-gm1*pn(5)*pn(5))/4.d0
1151 stiff(16)=(gr(1,6)-gm1*pn(1)*pn(6))/2.d0
1152 stiff(17)=(gr(2,6)-gm1*pn(2)*pn(6))/2.d0
1153 stiff(18)=(gr(3,6)-gm1*pn(3)*pn(6))/2.d0
1154 stiff(19)=(gr(4,6)-gm1*pn(4)*pn(6))/4.d0
1155 stiff(20)=(gr(5,6)-gm1*pn(5)*pn(6))/4.d0
1156 stiff(21)=(gr(6,6)-gm1*pn(6)*pn(6))/4.d0
1161 xstate(1,iint,iel)=epqini+c0*dg
1163 xstate(1+i,iint,iel)=ep(i)
1168 depvisc=
max(depvisc,c0*dg)
#define max(a, b)
Definition: cascade.c:32
static double * c1
Definition: mafillvcompmain.c:30
subroutine dgetrs(TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
Definition: dgesv.f:461
subroutine dgesv(N, NRHS, A, LDA, IPIV, B, LDB, INFO)
Definition: dgesv.f:58
static double * r1
Definition: filtermain.c:48
subroutine creep(decra, deswa, statev, serd, ec, esw, p, qtild, temp, dtemp, predef, dpred, time, dtime, cmname, leximp, lend, coords, nstatv, noel, npt, layer, kspt, kstep, kinc)
Definition: creep.f:22
subroutine orthotropic(orthol, anisox)
Definition: orthotropic.f:20