Télécharger incra4.eso

Retour à la liste

Numérotation des lignes :

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

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