Télécharger pente.eso

Retour à la liste

Numérotation des lignes :

pente
  1. C PENTE SOURCE CHAT 05/01/13 02:12:32 5004
  2. SUBROUTINE PENTE(EPS,YOU,SIGY,XXHH,ALPHA,ALP,TRAC,LTRAC,
  3. 1 XSTRS,NSTRS,MAPL,MFR,XPREC,YOUTA,ILOGPL)
  4. C======================================================================
  5. C CALCULE LE MODULE TANGENT A PARTIR DE LA COURBE DE TRACTION
  6. C LES CONTRAINTES VERSUS DEFORMATIONS TOTALES
  7. C ENTREES
  8. C EPS = DEFORMATION PLASTIQUE EQUIVALENTE
  9. C YOU = MODULE D YOUNG
  10. C SIGY = LIMITE ELASTIQUE
  11. C XXHH = DEUXIEME PENTE ( SAUF POUR DRUCKER)
  12. C ALPHA = COEFFICIENTS POUR LES PLAQUES
  13. C ALP = COEFFICIENTS POUR DRUCKER PRAGER
  14. C TRAC(LTRAC) = COURBE DE TRACTION
  15. C TRAC(1,3,5,7,9) LES CONTRAINTES
  16. C TRAC(2,4,6,8,10) LES EPSILONS EQUIVALENTS
  17. C XSTRS(NSTRS) = LES CONTRAINTES
  18. C MAPL = NUMERO MODELE PLASTICITE
  19. C MFR = NUMERO DE LA FORMULATION
  20. C XPREC= PRECISION POUR TROUVER LA POSITION SUR
  21. C LA COURBE DE TRACTION
  22. C SORTIES
  23. C YOUTA = MODULE TANGENT
  24. C ILOGPL = 0 EN DESSOUS PAS PLASTIFIE
  25. C 1 DESSUS PLASTIFIE
  26. C -1 EN DEHORS EXECUTION IMPOSSIBLE
  27. C====================================================================
  28. IMPLICIT INTEGER(I-N)
  29. IMPLICIT REAL*8(A-H,O-Z)
  30. PARAMETER(TROIS=3.D0,UN=1.D0,XZER=0.D0)
  31. DIMENSION TRAC(*),XSTRS(*)
  32. C
  33. C CALCUL EQUIVALENT VMISES
  34. C
  35. IF(MFR.EQ.1) THEN
  36. SIDD = XSTRS(1)*XSTRS(1)+XSTRS(2)*XSTRS(2)+XSTRS(3)*XSTRS(3)
  37. SIDD =SIDD-XSTRS(1)*XSTRS(2)- XSTRS(2)*XSTRS(3)-XSTRS(3)*XSTRS(1)
  38. SIDD = SIDD + TROIS*XSTRS(4)*XSTRS(4)
  39. IF(NSTRS.EQ.6) THEN
  40. SIDD = SIDD + TROIS*(XSTRS(5)*XSTRS(5)+XSTRS(6)*XSTRS(6))
  41. ENDIF
  42. SIDD =SQRT(SIDD)
  43. C
  44. ELSE IF(MFR.EQ.3) THEN
  45. SID1 = XSTRS(1)*XSTRS(1)+XSTRS(2)*XSTRS(2)-XSTRS(1)*XSTRS(2)
  46. SID1 = SID1 + TROIS*XSTRS(3)*XSTRS(3)
  47. SID2 = XSTRS(4)*XSTRS(4)+XSTRS(5)*XSTRS(5)-XSTRS(4)*XSTRS(5)
  48. SID2 = SID2 + TROIS*XSTRS(6)*XSTRS(6)
  49. SIDD = SID1 + SID2*ALPHA*ALPHA
  50. SIDD = SQRT(SIDD)
  51. C
  52. ELSE IF(MFR.EQ.5) THEN
  53. SIDD = XSTRS(1)*XSTRS(1)+XSTRS(2)*XSTRS(2)-XSTRS(1)*XSTRS(2)
  54. UUU = XSTRS(3)*XSTRS(3)+XSTRS(4)*XSTRS(4)+XSTRS(5)*XSTRS(5)
  55. SIDD = SIDD + UUU*TROIS
  56. SIDD = SQRT(SIDD)
  57. ENDIF
  58. C
  59. C CALCUL DU CRITERE SEUL LE CAS DRUCKER PRAGER IMPORTANT
  60. C
  61. IF(MAPL.EQ.3.OR.MAPL.EQ.15) THEN
  62. SIDD = ALP*(XSTRS(1)+XSTRS(2)+XSTRS(3)) +XXHH*SIDD
  63. ENDIF
  64. C
  65. C ON CHERCHE LA PENTE CORRESPONDANT A EPS
  66. C
  67. C
  68. C PLASTICITE PARFAITE ET DRUCKER PRAGER
  69. C
  70. IF(MAPL.EQ.1.OR.MAPL.EQ.3.OR.MAPL.EQ.15) THEN
  71. SIGYP=SIGY*(UN+XPREC)
  72. SIGYM=SIGY*(UN-XPREC)
  73. IF(EPS.EQ.XZER.AND.SIDD.LE.SIGY) THEN
  74. YOUTA=YOU
  75. ILOGPL=0
  76. ELSE IF(EPS.EQ.XZER.AND.SIDD.GT.SIGY) THEN
  77. ILOGPL=-1
  78. C
  79. ELSE
  80. IF(SIDD.GE.SIGYM.AND.SIDD.LE.SIGYP) THEN
  81. ILOGPL=1
  82. YOUTA=XZER
  83. ELSE IF(SIDD.LT.SIGYM) THEN
  84. ILOGPL=0
  85. YOUTA=YOU
  86. ELSE IF(SIDD.GT.SIGYP) THEN
  87. ILOGPL=-1
  88. ENDIF
  89. ENDIF
  90. C
  91. C ECROUISSAGE CINEMATIQUE BILINEAIRE
  92. C
  93. ELSE IF(MAPL.EQ.4) THEN
  94. SICC = SIGY + XXHH * EPS
  95. SICCP=SICC*(UN+XPREC)
  96. SICCM=SICC*(UN-XPREC)
  97. IF(EPS.EQ.XZER.AND.SIDD.LE.SIGY) THEN
  98. YOUTA=YOU
  99. ILOGPL=0
  100. ELSE IF(EPS.EQ.XZER.AND.SIDD.GT.SIGY) THEN
  101. ILOGPL=-1
  102. C
  103. ELSE
  104. IF(SIDD.GE.SICCM.AND.SIDD.LE.SICCP) THEN
  105. ILOGPL=1
  106. YOUTA=XXHH
  107. ELSE IF(SIDD.LT.SICCM) THEN
  108. ILOGPL=0
  109. YOUTA=YOU
  110. ELSE IF(SIDD.GT.SICCP) THEN
  111. ILOGPL=-1
  112. ENDIF
  113. ENDIF
  114. C
  115. C PLASTICITE ISOTROPE OU CINEMATIQUE
  116. C
  117. ELSE IF(MAPL.EQ.5.OR.MAPL.EQ.6) THEN
  118. * SIGYE= TRAC(3)
  119. * AM 16/7/93 MAUVAISE LIMITE ELASTIQUE
  120. SIGYE= TRAC(1)
  121. IF(EPS.EQ.0.AND.SIDD.LE.SIGYE) THEN
  122. ILOGPL=0
  123. YOUTA=YOU
  124. ELSE IF(EPS.EQ.0.AND.SIDD.GT.SIGYE) THEN
  125. ILOGPL=-1
  126. C
  127. ELSE
  128. DO 100 IA=4,LTRAC,2
  129. IF(TRAC(IA).LT.EPS) GOTO 100
  130. XX = TRAC(IA ) - TRAC(IA-2)
  131. YY = TRAC(IA-1) - TRAC(IA-3)
  132. HPRIM=YY / XX
  133. GOTO 110
  134. 100 CONTINUE
  135. HPRIM=(TRAC(LTRAC-1)-TRAC(LTRAC-3))/(TRAC(LTRAC)-TRAC(LTRAC-2))
  136. 110 CONTINUE
  137. SICC=TRAC(IA-1) + ( EPS- TRAC(IA) ) * HPRIM
  138. C
  139. C SIGY EN CORRESPONDANCE AVEC EPS
  140. C
  141. SICCP=SICC*(UN+XPREC)
  142. SICCM=SICC*(UN-XPREC)
  143. YOUTA=HPRIM * YOU / ( HPRIM + YOU )
  144. IF(SIDD.GT.SICCP) THEN
  145. ILOGPL=-1
  146. ELSE IF(SIDD.LE.SICCP.AND.SIDD.GE.SICCM) THEN
  147. ILOGPL= 1
  148. ELSE IF(SIDD.LT.SICCM) THEN
  149. ILOGPL= 0
  150. ENDIF
  151. ENDIF
  152. C
  153. ENDIF
  154. RETURN
  155. END
  156.  
  157.  

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