Télécharger cmicri.eso

Retour à la liste

Numérotation des lignes :

cmicri
  1. C CMICRI SOURCE OF166741 25/11/04 21:15:28 12349
  2.  
  3. SUBROUTINE CMICRI (WRK52,WRK53,WRK54,NVARI,iecou)
  4. *
  5. * modele d'endommagement microplan isotrope couple a la plasticite
  6. * C. La Borderie + S. Fichant Oct. 95
  7. * routines utilisees:
  8. * micro1: plasticite nadai
  9. * IDECAL=3 DANS LE CAS ISO IDECAL=8 DANS LE CAS ANISO
  10. * jacob3: diagonalisation:
  11. * attention jacob3 modifie la matrice a diagonaliser!!
  12. * prodt et prodt2
  13. * attention prodt2 ne fonctionne qu'avec la matrice des V. P. !!
  14. *
  15. IMPLICIT INTEGER(I-N)
  16. IMPLICIT REAL*8(A-H,O-Z)
  17.  
  18. INTEGER NVARI
  19. INTEGER ISTRS,I,J
  20. REAL*8 YOUNG,XNU,EPSD0,BT,LAMB,DEUXMU,ALFA,MP,BT1
  21. REAL*8 DOM,SIGAN(6),TRSIG,TRSIG33,DEF33(3,3),EPSIPP(3),VECP(3,3)
  22. REAL*8 D1,DEFPT(6),DEFTOT(6),EPSITOP(3),EPSE1,EPSE
  23. REAL*8 SIGPP(3),SIGPM(3),SIG33(3,3),SIG33P(3,3),SIG33M(3,3)
  24. REAL*8 LAMBDAP,LAMBDAM
  25. INTEGER IDECAL
  26.  
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. -INC DECHE
  30. -INC TECOU
  31.  
  32. SEGMENT WRKK1
  33. REAL*8 DEFELA(NSTRS1)
  34. ENDSEGMENT
  35. *
  36. * on recupere les variable materielles
  37. *
  38. YOUNG=XMAT(1)
  39. XNU=XMAT(2)
  40. EPSD0=XMAT(5)
  41. BT=XMAT(6)
  42. MP=XMAT(8)
  43. BT1=(1.D0-(YOUNG/(YOUNG+MP)))
  44. ALFA=XMAT(9)
  45. DEUXMU=YOUNG/(1.D0+XNU)
  46. LAMB=XNU*DEUXMU/(1.D0-2.D0*XNU)
  47. *
  48. * recuperation des variables internes d'endommagement
  49. *
  50. DOM=VAR0(3)
  51. *
  52. * on ecoule plastiquement sur la contrainte effective
  53. *
  54. IDECAL=3
  55. NSTRS1 =iecou.nstrss
  56.  
  57. * PRINT*,'ON ECOULE'
  58. CALL CMICR1(WRK52,WRK53,WRK54,NSTRS1,NVARI,IDECAL,
  59. & .FALSE.,DEFPT,EPSE1,EPSE)
  60. IF (KERRE .NE. 0) THEN
  61. print*,'on n''a pas converge dans micro1'
  62. CALL CMICR1(WRK52,WRK53,WRK54,NSTRS1,NVARI,IDECAL,
  63. & .FALSE.,DEFPT,EPSE1,EPSE)
  64. RETURN
  65. ENDIF
  66. *
  67. * on ecoule en endommagement sur les deformations elastiques
  68.  
  69. SEGINI WRKK1
  70. *
  71. * calcul des deformations elastiques
  72. *
  73. * print*,'-----sigf------'
  74. * print*,sigf(1),sigf(2),sigf(3)
  75. TRSIG = SIGF(1)+SIGF(2)+SIGF(3)
  76. DO ISTRS=1,3
  77. DEFELA(ISTRS)=( (1.D0+XNU)*SIGF(ISTRS)-XNU*TRSIG)/YOUNG
  78. DEFTOT(ISTRS)=DEFELA(ISTRS)+DEFPT(ISTRS)
  79. END DO
  80. * print*,'-----defela------'
  81. * print*,defela(1),defela(2),defela(3)
  82. * print*,'-----defpt------'
  83. * print*,defpt(1),defpt(2),defpt(3)
  84. DO ISTRS=4,NSTRS1
  85. DEFELA(ISTRS)= (1.D0+XNU)*SIGF(ISTRS)/YOUNG
  86. DEFTOT(ISTRS)=DEFELA(ISTRS)+DEFPT(ISTRS)
  87. END DO
  88. *
  89. * on met les deformations sous forme de matrice 3x3
  90. * pour calculer les valeurs propres
  91. *
  92. CALL ENDOCA (DEFELA,DEF33,1)
  93. * print*,'deformations elastiques dans rpg(3x3)'
  94. * print*,def33
  95. * print*,'prodt defrdpe'
  96. CALL JACOB3 (DEF33,3,EPSIPP,VECP)
  97. * print*,'deformations principales'
  98. * print*,(epsipp(i),i=1,3)
  99. *
  100. * PAREIL POUR DEFTOTAL
  101. *
  102. CALL ENDOCA (DEFTOT,DEF33,1)
  103. CALL JACOB3 (DEF33,3,EPSITOP,VECP)
  104. * print*,'deformations TOTAL principales'
  105. * print*,(epsitop(i),i=1,3)
  106. *
  107. * on calcule l'endommagement resultant
  108. *
  109. * print*,'BT=',BT,'EPSD0=',EPSD0,'EPSIPP(1)',EPSIPP(1)
  110. IF ( (EPSIPP(1)) .GT. (EPSD0) ) THEN
  111. * IF ( EPSITOP(1) .GT. (EPSD0) ) THEN
  112. * PRINT*,'OUI On calcul l endommagement'
  113. * PRINT*,'EPSIPP(1)/BT1',EPSIPP(1)/BT1
  114. * PRINT*,'EPSITOP(1)',EPSITOP(1)
  115. * PRINT*,'BT1',BT1
  116. D1=1.D0-(((EPSD0)/EPSIPP(1))*EXP(BT*(EPSD0- EPSIPP(1))))
  117. * D1=1.D0-EPSD0/EPSIPP(1)*EXP(BT*(EPSD0 - (EPSIPP(1)+EPSE1)))
  118. * D1=1.D0-EXP(-BT*(EPSE))
  119. * D1=0.D0
  120. ELSE
  121. D1=0.D0
  122. END IF
  123. * PRINT*,'D1=',D1
  124. * PRINT*,'EPSIPP(1)=',EPSIPP(1)
  125. * PRINT*,'EPSE1=',EPSE1
  126. * PRINT*,'EPSE',EPSE
  127. *
  128. * et on en l'endommagement final
  129. *
  130. IF(d1.gt.dom)then
  131. dom=d1
  132. endif
  133. * print*,'DOM=',DOM
  134. *
  135. * on separe les contraintes effectives en + et - dans rpsigma
  136. *
  137. CALL ENDOCA (SIGF,SIG33,1)
  138. CALL JACOB3 (SIG33,3,SIGPP,VECP)
  139. * print*,'contraintes ppales'
  140. * print*,sigpp
  141. DO I=1,3
  142. IF (SIGPP(I) .LT. 0.D0)THEN
  143. SIGPM(I)=SIGPP(I)
  144. SIGPP(I)=0.D0
  145. ELSE
  146. SIGPM(I)=0.D0
  147. END IF
  148. END DO
  149. CALL PRODT2(SIG33P,SIGPP,VECP,3)
  150. CALL PRODT2(SIG33M,SIGPM,VECP,3)
  151. * print*,'contraintes dans rpg'
  152. * print*,sig33p
  153. * print*,sig33m
  154. *
  155. LAMBDAP=1.D0-DOM
  156. LAMBDAM=1.D0-DOM**ALFA
  157. SIG33(1,1)=LAMBDAP*SIG33P(1,1)+LAMBDAM*SIG33M(1,1)
  158. SIG33(1,2)=LAMBDAP*SIG33P(1,2)+LAMBDAM*SIG33M(1,2)
  159. SIG33(1,3)=LAMBDAP*SIG33P(1,3)+LAMBDAM*SIG33M(1,3)
  160. SIG33(2,1)=SIG33(1,2)
  161. SIG33(2,2)=LAMBDAP*SIG33P(2,2)+LAMBDAM*SIG33M(2,2)
  162. SIG33(2,3)=LAMBDAP*SIG33P(2,3)+LAMBDAM*SIG33M(2,3)
  163. SIG33(3,1)=SIG33(1,3)
  164. SIG33(3,2)=SIG33(2,3)
  165. SIG33(3,3)=LAMBDAP*SIG33P(3,3)+LAMBDAM*SIG33M(3,3)
  166. *
  167. * Modif Mohammed calcul des def total
  168. TRSIG33=SIG33(1,1)+SIG33(2,2)+sig33(3,3)
  169. DEFTOT(1)=( (1.D0+XNU)*SIG33(1,1)-XNU*TRSIG33)/YOUNG
  170. *
  171. * on rend les contraintes et les variables internes finales
  172. *
  173. SIGAN(1)=SIGF(1)-SIG33(1,1)
  174. SIGF(1)=SIG33(1,1)
  175. VARF(3)=MAX(DOM,0.d0)
  176. * VARF(3)=DEFELA(1)
  177. SIGAN(2)=SIGF(2)-SIG33(2,2)
  178. SIGF(2)=SIG33(2,2)
  179. SIGAN(3)=SIGF(3)-SIG33(3,3)
  180. SIGF(3)=SIG33(3,3)
  181. SIGAN(4)=SIGF(4)-SIG33(1,2)
  182. SIGF(4)=SIG33(1,2)
  183. IF(IFOUR.GE.1.OR.IFOUR.LE.-3) THEN
  184. SIGAN(5)=SIGF(5)-SIG33(1,3)
  185. SIGF(5)=SIG33(1,3)
  186. SIGAN(6)=SIGF(6)-SIG33(2,3)
  187. SIGF(6)=SIG33(2,3)
  188. ELSE
  189. SIGAN(5)=0.D0
  190. SIGAN(6)=0.D0
  191. END IF
  192. DO ISTRS=1,6
  193. VARF(ISTRS+3)=SIGAN(ISTRS)
  194. END DO
  195. SEGSUP WRKK1
  196.  
  197. RETURN
  198. END
  199.  
  200.  
  201.  

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