Télécharger incre4.eso

Retour à la liste

Numérotation des lignes :

incre4
  1. C INCRE4 SOURCE CB215821 16/04/21 21:17:09 8920
  2. SUBROUTINE INCRE4(SIG,VAR,EPSVPT,VARPT,XMAT,ALFA,NSTRS0,
  3. & NVARI,NCOMAT)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. DIMENSION SIG(*),VAR(*),EPSVPT(*),VARPT(*),XMAT(*)
  7. DIMENSION SM(4),SB(4),XXM1(4),XXB1(4),XXM2(4),XXB2(4)
  8. DIMENSION GAMM(4),GABB(4),EPMM(4),EPBB(4),XXM(4),XXB(4)
  9. DIMENSION ANSM(4),ANSB(4),ANM(4),ANB(4)
  10. DIMENSION EPS0(8)
  11. PARAMETER (AMAX = 1.0E20)
  12. DETIER=2.0D0/3.0D0
  13. ROOT=SQRT(1.5D0)
  14. C-------------------------------------------------------------------|
  15. C STEP-1 SEPARATING MEMBRANE & BENDING PARTS |
  16. C-------------------------------------------------------------------I
  17. NSTRS = NSTRS0+2
  18. NS = NSTRS/2
  19. SM(1)=SIG(1)
  20. SM(2)=SIG(2)
  21. SM(3)=0.0D0
  22. IF (NS.EQ.4) SM(4)=SIG(3)
  23. SB(1)=SIG(NS)
  24. SB(2)=SIG(NS+1)
  25. SB(3)=0.0D0
  26. IF (NS.EQ.4) SB(4)=SIG(NS+2)
  27. DO 20 I=1,NS
  28. XXM1(I) = VAR( I)
  29. XXM2(I) = VAR(2*NS+I)
  30. XXB1(I) = VAR( NS+I)
  31. XXB2(I) = VAR(3*NS+I)
  32. GAMM(I) = VAR(4*NS+I)
  33. GABB(I) = VAR(5*NS+I)
  34. EPMM(I) = VAR(6*NS+I)
  35. EPBB(I) = VAR(7*NS+I)
  36. 20 CONTINUE
  37. C-------------------------------------------------------------------|
  38. C STEP-2: EVALUATION OF J2 SIGMA - X |
  39. C-------------------------------------------------------------------I
  40. XXM(1)= (2.D0*SM(1) -SM(2))/3.D0 -XXM1(1) -XXM2(1)
  41. XXM(2)= (2.D0*SM(2) -SM(1))/3.D0 -XXM1(2) -XXM2(2)
  42. XXM(3)= -1.D0*(SM(1)+SM(2))/3.D0 -XXM1(3) -XXM2(3)
  43. XXM(4)=0.0D0
  44. IF(NS.EQ.4) XXM(4)= SM(4) -XXM1(4) -XXM2(4)
  45. XXB(1)= (2.D0*SB(1) -SB(2))/3.D0 -XXB1(1) -XXB2(1)
  46. XXB(2)= (2.D0*SB(2) -SB(1))/3.D0 -XXB1(2) -XXB2(2)
  47. XXB(3)= -1.D0*(SB(1)+SB(2))/3.D0 -XXB1(3) -XXB2(3)
  48. XXB(4)=0.0D0
  49. IF(NS.EQ.4) XXB(4)= SB(4) -XXB1(4) -XXB2(4)
  50. * T1 = XXM(1)*XXM(1) + XXM(2)*XXM(2) + XXM(1)*XXM(2)
  51. * IF(NS.EQ.4) T1 = T1 + XXM(4)*XXM(4)
  52. T1 = PROCON(XXM,XXM,NS)
  53. AJM2 = 3.0D0*T1/2.D0
  54. * T1 = XXB(1)*XXB(1) + XXB(2)*XXB(2) + XXB(1)*XXB(2)
  55. * IF(NS.EQ.4) T1 = T1 + XXB(4)*XXB(4)
  56. T1 = PROCON(XXB,XXB,NS)
  57. AJB2 = 3.0D0*T1/2.D0
  58. AJ2 = SQRT( AJM2 + ALFA*ALFA*AJB2 )
  59. C--------------------------------------------------------------------|
  60. C STEP-3: CALCUL OF SIGV/K |
  61. C -------------------------------------------------------------------I
  62. RR = VAR (4*NSTRS+2)
  63. RS = XMAT(10)*RR
  64. SK = (AJ2 - RS-XMAT(7))/( XMAT(8) + XMAT(9)*RR )
  65. C--------------------------------------------------------------------|
  66. C STEP-4: CALCULATION OF EFFECTIVE INELASTIC STRAIN INCREMENT (P) |
  67. C -------------------------------------------------------------------I
  68. IF (SK.GT.0.0D0) THEN
  69. PPT1= XPUISS(SK,XMAT(6) ,AMAX)
  70. PPT2= XPUISS(SK,XMAT(6)+1,AMAX)
  71. ELSE
  72. PPT1= 0.0D0
  73. PPT2= 0.0D0
  74. ENDIF
  75. T1 = XMAT(5)*PPT2
  76. PPT2=1.0D20
  77. IF(ABS(T1).LT.40.0D0) PPT2= EXP(T1)
  78. PPT = PPT1 * PPT2
  79. VARPT(4*NSTRS+1) = PPT
  80. C---------------------------------------------------------------------|
  81. C******* CALCULATION OF INELASTIC STRAIN INCREMENTS (EPSV0) |
  82. C---------------------------------------------------------------------I
  83. IF(AJ2.EQ.0.0D0) AJ2=1.0D-20
  84. T1 = 1.5D0*PPT/AJ2
  85. EPS0(1) = T1*XXM(1)
  86. EPS0(2) = T1*XXM(2)
  87. EPS0(3) = T1*XXM(3)
  88. IF(NS.EQ.4) EPS0(4)= T1*XXM(4)
  89. EPS0(NS+1) = T1*XXB(1) *ALFA *ALFA
  90. EPS0(NS+2) = T1*XXB(2) *ALFA *ALFA
  91. EPS0(NS+3) = T1*XXB(3) *ALFA *ALFA
  92. IF(NS.EQ.4) EPS0(NS+4)= T1*XXB(4) *ALFA*ALFA
  93. DO 30 I=1,NSTRS
  94. 30 VARPT(3*NSTRS+I)=EPS0(I)
  95. C
  96. C----------------------------------------------------------------|
  97. C ******* CALCULATION OF PI(P) |
  98. C----------------------------------------------------------------I
  99. P = VAR(4*NSTRS+1)
  100. T1 = XMAT(16)*P
  101. T2 = EXP(-T1)
  102. PIP= XMAT(13)+(1.0D0-XMAT(13)) * T2
  103. C----------------------------------------------------------------|
  104. C******* CALCULATION OF XII |
  105. C----------------------------------------------------------------I
  106. C CORRECTIONS MLR 26/2/93 COMME DANS INCRE2
  107. C
  108. * T1 = 3.0D0*(XXM1(1)*XXM1(1)+XXM1(2)*XXM1(2)+XXM1(1)*XXM1(2))
  109. * IF(NS.EQ.4) T1 = T1 + 3.0D0 * XXM1(4) * XXM1(4)
  110. T1=PROCON(XXM1,XXM1,NS)
  111. T1=3.D0*T1/2.D0
  112. * T2 = 3.0D0*(XXB1(1)*XXB1(1)+XXB1(2)*XXB1(2)+XXB1(1)*XXB1(2))
  113. * IF(NS.EQ.4) T2 = T2 + 3.0D0 * XXB1(4) * XXB1(4)
  114. T2=PROCON(XXB1,XXB1,NS)
  115. T2=3.D0*T2/2.D0
  116. X1II = 0.D0
  117. IF(XMAT(17).NE.0.D0)
  118. . X1II = SQRT(T1+ALFA*ALFA*T2)/XMAT(17)
  119. * T1 = 3.0D0*(XXM2(1)*XXM2(1)+XXM2(2)*XXM2(2)+XXM2(1)*XXM2(2))
  120. * IF(NS.EQ.4) T1 = T1 + 3.0D0 * XXM2(4) * XXM2(4)
  121. T1=PROCON(XXM2,XXM2,NS)
  122. T1=3.D0*T1/2.D0
  123. * T2 = 3.0D0*(XXB2(1)*XXB2(1)+XXB2(2)*XXB2(2)+XXB2(1)*XXB2(2))
  124. * IF(NS.EQ.4) T2 = T2 + 3.0D0 * XXB2(4) * XXB2(4)
  125. T2=PROCON(XXB2,XXB2,NS)
  126. T2=3.D0*T2/2.D0
  127. X2II = 0.D0
  128. IF(XMAT(18).NE.0.D0)
  129. . X2II = SQRT(T1+ALFA*ALFA*T2)/XMAT(18)
  130. COX1 = XPUISS(X1II,XMAT(19)-1.0D0,AMAX)
  131. COX2 = XPUISS(X2II,XMAT(20)-1.0D0,AMAX)
  132. C ----------------------------------------------------------------|
  133. C******* CALCULATION OF DX1 AND DX2 |
  134. C-----------------------------------------------------------------I
  135. DO 73 I=1,NSTRS
  136. VARPT( I)=0.0D0
  137. 73 VARPT(NSTRS+I)=0.0D0
  138. DO 74 I=1,NSTRS
  139. T1 = DETIER * XMAT(11) * XMAT(12) * EPS0(I)
  140. T2 = XMAT(11) * PIP * VAR(I) * PPT
  141. T3 = COX1 * VAR(I)
  142. VARPT(I)= T1 - T2 -T3
  143. T1 = DETIER * XMAT(14) * XMAT(15) * EPS0(I)
  144. T2 = XMAT(14) * PIP * VAR(NSTRS+I) * PPT
  145. T3 = COX2 * VAR(NSTRS+I)
  146. 74 VARPT(NSTRS+I)= T1 - T2 - T3
  147. C-----------------------------------------------------------------|
  148. C******* CALCULATION OF DR |
  149. C-----------------------------------------------------------------I
  150. T1 = 1.0D0-(1.0D0-VAR(4*NSTRS+3)/XMAT(25))**2
  151. QR = VAR(4*NSTRS+3)-XMAT(26)*T1
  152. CO1= QR-VAR(4*NSTRS+2)
  153. CO0= ABS(CO1)
  154. CO = XPUISS(CO0,XMAT(22)-1.0D0,AMAX)
  155. T1= XMAT(16)*(VAR(4*NSTRS+3)-VAR(4*NSTRS+2))*PPT
  156. T2= XMAT(21)*CO*CO1
  157. DR= T1 + T2
  158. VARPT(4*NSTRS+2)=DR
  159. C----------------------------------------------------------------|
  160. C******* CALCULATION OF PROD (N X N*) |
  161. C----------------------------------------------------------------I
  162. TM1 = EPMM(1)-GAMM(1)
  163. TM2 = EPMM(2)-GAMM(2)
  164. TM3 = EPMM(3)-GAMM(3)
  165. TM4 = 0.0D0
  166. IF(NS.EQ.4) TM4 = EPMM(4)-GAMM(4)
  167. AIM2 = TM1*TM1+TM2*TM2+TM3*TM3+2.D0*TM4*TM4
  168. AIM2 = AIM2*3.D0/2.D0
  169. TB1 = EPBB(1)-GABB(1)
  170. TB2 = EPBB(2)-GABB(2)
  171. TB3 = EPBB(3)-GABB(3)
  172. TB4 = 0.0D0
  173. IF(NS.EQ.4) TB4 = EPBB(4)-GABB(4)
  174. AIB2 = TB1*TB1+TB2*TB2+TB3*TB3+2.D0*TB4*TB4
  175. AIB2 = AIB2*3.D0/2.D0
  176. AI2 = SQRT(AIM2+(AIB2/ALFA/ALFA))
  177. IF (AI2.LT.1.D-10) THEN
  178. IF (AI2.EQ.0.D0) AI2=1.D-10
  179. AI20=AI2*1.D20
  180. TM1=TM1*1.D20
  181. TM2=TM2*1.D20
  182. TM3=TM3*1.D20
  183. TM4=TM4*1.D20
  184. TB1=TB1*1.D20
  185. TB2=TB2*1.D20
  186. TB3=TB3*1.D20
  187. TB4=TB4*1.D20
  188. ELSE
  189. AI20=AI2
  190. ENDIF
  191. ANSM(1) = ROOT*TM1/AI20
  192. ANSM(2) = ROOT*TM2/AI20
  193. ANSM(3) = ROOT*TM3/AI20
  194. ANSM(4) = 0.0D0
  195. IF(NS.EQ.4) ANSM(4) = ROOT*TM4/AI20
  196. ANSB(1) = ROOT*TB1/AI20
  197. ANSB(2) = ROOT*TB2/AI20
  198. ANSB(3) = ROOT*TB3/AI20
  199. ANSB(4) = 0.0D0
  200. IF(NS.EQ.4) ANSB(4) = ROOT*TB4/AI20
  201. ANM (1) = ROOT*XXM(1)/AJ2
  202. ANM (2) = ROOT*XXM(2)/AJ2
  203. ANM (3) = ROOT*XXM(3)/AJ2
  204. ANM (4) = 0.0D0
  205. IF(NS.EQ.4) ANM (4) = ROOT*XXM(4)/AJ2
  206. ANB (1) = ROOT*XXB(1)/AJ2
  207. ANB (2) = ROOT*XXB(2)/AJ2
  208. ANB (3) = ROOT*XXB(3)/AJ2
  209. ANB (4) = 0.0D0
  210. IF(NS.EQ.4) ANB (4) = ROOT*XXB(4)/AJ2
  211. 76 CONTINUE
  212. FF = DETIER*AI2-VAR(4*NSTRS+4)
  213. HF=0.0D0
  214. IF(FF.GT.0.0D0) HF=1.0D0
  215. ANAN1=PROCON(ANM,ANSM,NS)
  216. * ANAN1 = ANM(1)*ANSM(1)+ANM(2)*ANSM(2)
  217. * ANAN1 = ANAN1+2.D0*ANM(3)*ANSM(3)
  218. ANANSM=0.0D0
  219. IF(ANAN1.GT.0.0D0) ANANSM=ANAN1
  220. ANAN1=PROCON(ANB,ANSB,NS)
  221. * ANAN1 = ANB(1)*ANSB(1)+ANB(2)*ANSB(2)
  222. * ANAN1 = ANAN1+2.D0*ANB(3)*ANSB(3)
  223. ANANSB=0.0D0
  224. IF(ANAN1.GT.0.0D0) ANANSB=ANAN1
  225. C----------------------------------------------------------------|
  226. C******* CALCULATION OF DQ |
  227. C----------------------------------------------------------------I
  228. ANANS=ANANSM+ANANSB/ALFA/ALFA
  229. DQ = XMAT(23)*HF*ANANS*PPT
  230. VARPT(4*NSTRS+4)=DQ
  231. C----------------------------------------------------------------|
  232. C******* CALCULATION OF DGETA |
  233. C----------------------------------------------------------------I
  234. T1 = ROOT*(1.0D0-XMAT(23))*HF*ANANS*PPT
  235. DO 78 I=1,NS
  236. VARPT(2*NSTRS+I) = T1*ANSM(I)
  237. VARPT(2*NSTRS+NS+I)= T1*ANSB(I)
  238. 78 CONTINUE
  239. C----------------------------------------------------------------|
  240. C******* CALCULATION OF DQQ |
  241. C----------------------------------------------------------------I
  242. VARPT(4*NSTRS+3)=2.0D0*XMAT(24)*(XMAT(25)-VAR(4*NSTRS+3))*DQ
  243. C
  244. EPSVPT(1)=EPS0(1)
  245. EPSVPT(2)=EPS0(2)
  246. IF (NS.EQ.4) EPSVPT(3)=EPS0(4)
  247. EPSVPT(NS)=EPS0(NS+1)
  248. EPSVPT(NS+1)=EPS0(NS+2)
  249. IF (NS.EQ.4) EPSVPT(6)=EPS0(8)
  250. C
  251. RETURN
  252. END
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales