Télécharger umapli.eso

Retour à la liste

Numérotation des lignes :

umapli
  1. C UMAPLI SOURCE CHAT 05/01/13 03:58:05 5004
  2. SUBROUTINE UMAPLI ( STRESS, STATEV, DDSDDE,
  3. & STRAN, DSTRAN, DTIME,
  4. & TEMP, DTEMP, PREDEF, DPRED,
  5. & NTENS, NSTATV,
  6. & PROPS, NPROPS, COORDS,
  7. & NOEL, NPT, KINC )
  8. IMPLICIT INTEGER(I-N)
  9. IMPLICIT REAL*8(A-H,O-Z)
  10. C-----------------------------------------------------------------------
  11. C
  12. C DESCRIPTION FONCTIONNELLE :
  13. C -------------------------
  14. C
  15. C Dependance du module Utilisateur UMAT
  16. C Appelee dans le cas suivant :
  17. C
  18. C ILOI = 5 : Modele 'PLASTIQUE' 'ISOTROPE' de CAST3M, INPLAS=5
  19. C RESTRICTION A LA FORMULATION MASSIVE
  20. C
  21. C Composantes de materiau
  22. C -----------------------
  23. C PROPS ( 1) : 'YOUN'
  24. C PROPS ( 2) : 'NU '
  25. C
  26. C Courbe de traction : pour 1 =< I =< LTRAC
  27. C
  28. C PROPS ( 2+2*I-1) : 'Eiii' iii formatage I3 de la valeur de I
  29. C PROPS ( 2+2*I ) : 'Siii'
  30. C
  31. C Variables internes
  32. C ------------------
  33. C STATEV( 1) : 'EPSE'
  34. C
  35. C STATEV( 2) : 'ENXX'
  36. C STATEV( 3) : 'ENYY'
  37. C STATEV( 4) : 'ENZZ'
  38. C STATEV( 5) : 'GNXY'
  39. C STATEV( 6) : 'GNXZ'
  40. C STATEV( 7) : 'GNYZ'
  41. C
  42. C-----------------------------------------------------------------------
  43. C Arguments de l'interface
  44. C
  45. INTEGER NTENS, NSTATV, NPROPS,
  46. & NOEL, NPT, KINC
  47. C
  48. REAL*8 STRESS(NTENS), STATEV(*),
  49. & DDSDDE(NTENS,NTENS),
  50. & STRAN(NTENS), DSTRAN(NTENS),
  51. & DTIME,
  52. & TEMP, DTEMP, PREDEF(*), DPRED(*),
  53. & PROPS(NPROPS),
  54. & COORDS(3)
  55. C
  56. C Variables locales
  57. C
  58. C Tableaux de travail
  59. C
  60. REAL*8 SIG(130), EPS(130)
  61. REAL*8 S(8), SX(8), DS(8), DSIG(8), SPHER1(8), DSPHER1(8),
  62. & DDEPSE(8), F(8), W1(8), W2(8), SIGB(8), Z1(8)
  63. C
  64. REAL*8 TRAC(260), DSIGT(8), WORK(1)
  65. C
  66. C Variables scalaires
  67. C
  68. INTEGER MFR1, IFOURB, I, J, LTRAC, IBI, NITER, ITRY
  69. C
  70. REAL*8 YUNG, XNU, ALFAH, EP1, EPST, AUX0, AUX, AUX1, GEGE,
  71. & SI, SEQ, PHI, PETI, PHI0, SI0, RR,
  72. & COEF, PENTE, RP, C, DENOM, DELTA, DMU, DP, DR,
  73. & APHI, APHI0, TEST
  74. C
  75. REAL*8 UN, DEUX, UNDEMI
  76. PARAMETER (UN=1.D0,DEUX=2.D0,UNDEMI=.5D0)
  77. C
  78. REAL*8 PRECIS
  79. DATA PRECIS/1.e-8/
  80. C
  81. REAL*8 VONMIS0
  82. EXTERNAL VONMIS0
  83. C
  84. C------------------- Debut du code executable --------------------------
  85. C
  86. C=======================================================================
  87. C 1 - INITIALISATIONS
  88. C=======================================================================
  89. C
  90. C Indicateurs de modelisation pour les dependances issues de CAST3M
  91. C + constantes geometriques (initialisations arbitraires)
  92. C
  93. MFR1 = 1
  94. IFOURB = 2
  95. C
  96. ALFAH=1.D0
  97. EP1=0.D0
  98. C
  99. C Tableaux de travail
  100. C
  101. DO 100 I=1,NTENS
  102. S(I)=0.D0
  103. SPHER1(I)=0.D0
  104. 100 CONTINUE
  105. C
  106. C Recuperation des constantes de materiau
  107. C
  108. YUNG=PROPS(1)
  109. XNU=PROPS(2)
  110. C
  111. C Recuperation de la courbe de traction
  112. C
  113. CALL CRBTRA(PROPS,NPROPS,TRAC,LTRAC,KINC)
  114. IF (KINC.LT.0) RETURN
  115. DO 101 I=1,LTRAC
  116. SIG(I)=TRAC(2*I-1)
  117. EPS(I)=TRAC(2*I)
  118. 101 CONTINUE
  119. C
  120. C Recuperation des variables internes (deformations plastiques)
  121. C
  122. EPST=STATEV(1)
  123. C
  124. C=======================================================================
  125. C 2 - Prediction elastique des contraintes
  126. C Calcul de l'increment de contraintes conforme a CALSIG
  127. C Calcul des coefficients de la matrice de Hooke conforme a HOOKIS
  128. C=======================================================================
  129. C
  130. AUX0 = UN/((UN+XNU)*(UN-DEUX*XNU))
  131. AUX = YUNG*AUX0*(UN-XNU)
  132. AUX1 = YUNG*AUX0*XNU
  133. GEGE = YUNG*UNDEMI/(UN+XNU)
  134. C
  135. DO 200 J=1,NTENS
  136. DO 201 I=1,NTENS
  137. DDSDDE(I,J)=0.0D0
  138. 201 CONTINUE
  139. 200 CONTINUE
  140. C
  141. DDSDDE(1,1) = AUX
  142. DDSDDE(1,2) = AUX1
  143. DDSDDE(1,3) = AUX1
  144. C
  145. DDSDDE(2,1) = AUX1
  146. DDSDDE(2,2) = AUX
  147. DDSDDE(2,3) = AUX1
  148. C
  149. DDSDDE(3,1) = AUX1
  150. DDSDDE(3,2) = AUX1
  151. DDSDDE(3,3) = AUX
  152. C
  153. DDSDDE(4,4) = GEGE
  154. DDSDDE(5,5) = GEGE
  155. DDSDDE(6,6) = GEGE
  156. C
  157. DO 210 I=1,NTENS
  158. DSIGT(I)=0.0D0
  159. 210 CONTINUE
  160. DO 211 J=1,NTENS
  161. DO 212 I=1,NTENS
  162. DSIGT(I)=DSIGT(I)+DDSDDE(I,J)*DSTRAN(J)
  163. 212 CONTINUE
  164. 211 CONTINUE
  165. C
  166. DO 220 I=1,NTENS
  167. S(I)=STRESS(I)+DSIGT(I)
  168. SIGB(I)=S(I)
  169. SX(I)=S(I)-SPHER1(I)
  170. 220 CONTINUE
  171. C
  172. C=======================================================================
  173. C 3 - Calcul de la limite elastique SI
  174. C=======================================================================
  175. C
  176. CALL TRACTI(SI,EPST,SIG,EPS,LTRAC,2,IBI)
  177. IF (IBI.EQ.1) THEN
  178. KINC = -511
  179. RETURN
  180. ENDIF
  181. C
  182. C=======================================================================
  183. C 4 - Calcul de la contrainte equivalente SEQ
  184. C=======================================================================
  185. C
  186. SEQ=VONMIS0(SX,NTENS,MFR1,IFOURB,EP1,ALFAH)
  187. C
  188. C=======================================================================
  189. C 5 - Verification du critere de plasticite
  190. C Demarrage des iterations internes le cas echeant
  191. C=======================================================================
  192. C
  193. PHI=SEQ-SI
  194. NITER=0
  195. PETI=1.1D0*0.5D0*PRECIS*SEQ
  196. CALL EPSPRE(SEQ,SI,PETI,ITRY)
  197. C
  198. C SI ON NE PLASTIFIE PAS avec la prediction elastique => ON SORT
  199. C L'etat de contraintes est determine par la prediction elastique
  200. C Les variables internes (deformations plastiques) sont inchangees
  201. C
  202. IF ( (ITRY.EQ.1).OR.(SEQ.LE.SI) ) THEN
  203. DO 500 I=1,NTENS
  204. STRESS(I)=S(I)
  205. 500 CONTINUE
  206. RETURN
  207. ENDIF
  208. C
  209. C SINON : ON PLASTIFIE DONC DEMARRAGE DES ITERATIONS INTERNES
  210. C
  211. C Initialisations complementaires
  212. C
  213. PHI0=PHI
  214. SI0=SI
  215. RR=0.D0
  216. C
  217. DO 510 I=1,NTENS
  218. DSIG(I)=0.D0
  219. DSPHER1(I)=0.D0
  220. 510 CONTINUE
  221. C
  222. C _______________________________________________________________
  223. C Demarrage des iterations internes (bloc REPETER)
  224. C
  225. 10 NITER=NITER+1
  226. C
  227. C Calcul de W1=DF/D(SIGMA)
  228. C
  229. F(1)=(2.D0*SX(1)-SX(2)-SX(3))/3.D0
  230. F(2)=(2.D0*SX(2)-SX(1)-SX(3))/3.D0
  231. F(3)=(2.D0*SX(3)-SX(1)-SX(2))/3.D0
  232. DO 1010 I=4,NTENS
  233. F(I)=SX(I)
  234. 1010 CONTINUE
  235. DO 1011 I=1,3
  236. W1(I)=1.5D0*F(I)/SEQ
  237. Z1(I)=W1(I)
  238. 1011 CONTINUE
  239. DO 1012 I=4,NTENS
  240. W1(I)=3.D0*F(I)/SEQ
  241. Z1(I)=1.5D0*F(I)/SEQ
  242. 1012 CONTINUE
  243. C
  244. DO 1020 I=1,NTENS
  245. W2(I)=0.D0
  246. DO 1021 J=1,NTENS
  247. W2(I)=W2(I)+DDSDDE(I,J)*W1(J)
  248. 1021 CONTINUE
  249. 1020 CONTINUE
  250. C
  251. COEF=0.D0
  252. DO 1030 I=1,NTENS
  253. COEF=COEF+W1(I)*W2(I)
  254. 1030 CONTINUE
  255. C
  256. CALL TRACTI(PENTE,EPST,SIG,EPS,LTRAC,1,IBI)
  257. IF (IBI.EQ.1) THEN
  258. KINC = -512
  259. RETURN
  260. ENDIF
  261. C
  262. RP=PENTE
  263. C=0.D0
  264. DENOM=COEF+C+RP
  265. DELTA=PHI/DENOM
  266. DMU=C*DELTA/SEQ
  267. C
  268. DO 1040 I=1,NTENS
  269. DSIG(I)=-DELTA*W2(I)
  270. DSPHER1(I)=DMU*SX(I)
  271. 1040 CONTINUE
  272. DP=DELTA
  273. DR=RP*DP
  274. C
  275. RR=RR+DR
  276. EPST=EPST+DP
  277. DO 1050 I=1,NTENS
  278. S(I)=S(I)+DSIG(I)
  279. SPHER1(I)=SPHER1(I)+DSPHER1(I)
  280. SX(I)=S(I)-SPHER1(I)
  281. 1050 CONTINUE
  282. SEQ=VONMIS0(SX,NTENS,MFR1,IFOURB,EP1,ALFAH)
  283. C
  284. C Test de convergence
  285. C Calcul de la nouvelle valeur de PHI
  286. C
  287. CALL TRACTI(SI,EPST,SIG,EPS,LTRAC,2,IBI)
  288. PHI=SEQ-SI
  289. C
  290. PETI=1.E-7
  291. APHI=ABS(PHI)
  292. APHI0=ABS(PHI0)
  293. TEST=PETI*APHI0
  294. C
  295. IF (NITER.GT.50) THEN
  296. KINC = -513
  297. RETURN
  298. ENDIF
  299. C
  300. C SI ON A CONVERGE : on calcule l'etat final, on stocke les
  301. C resultats et on sort
  302. C
  303. IF (APHI.LE.TEST) THEN
  304. C
  305. DO 1060 I=1,NTENS
  306. DS(I)=S(I)-SIGB(I)
  307. 1060 CONTINUE
  308. CALL EPSIG0(DS,DDEPSE,MFR1,IFOURB,YUNG,XNU,WORK,NTENS)
  309. STATEV(1)=EPST
  310. DO 1070 I=1,NTENS
  311. STRESS(I)=S(I)
  312. STATEV(1+I)=STATEV(1+I)-DDEPSE(I)
  313. 1070 CONTINUE
  314. C
  315. C SINON : on itere
  316. C
  317. ELSE
  318. GOTO 10
  319. ENDIF
  320. C
  321. C _______________________________________________________________
  322. C Fin des iterations internes
  323. C
  324. RETURN
  325. END
  326.  
  327.  
  328.  
  329.  

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