Télécharger nmazar.eso

Retour à la liste

Numérotation des lignes :

  1. C NMAZAR SOURCE LJASON 07/10/24 21:15:03 5930
  2.  
  3. SUBROUTINE NMAZAR(XMAT,NMATT,VAR0,VARF,NVARI,SIG0,
  4. & SIGF,DEPST,NSTRS,ISTEP)
  5.  
  6. IMPLICIT INTEGER(I-N)
  7. IMPLICIT REAL*8(A-H,O-Z)
  8.  
  9. * Entrees
  10. INTEGER NMATT, NVARI, NSTRS, ISTEP
  11. REAL*8 XMAT(NMATT), VAR0(NVARI), SIG0(NSTRS), DEPST(NSTRS)
  12. REAL*8 SIGF(NSTRS), VARF(NVARI)
  13.  
  14. * Variables intermediaires
  15. REAL*8 EPS33(3,3),EPSIPP(3),EPSILT(3),VALP33(3,3)
  16. REAL*8 SIGP(3),SIGPT(3),SIGPC(3),TRSIGT,TRSIGC
  17. REAL*8 SIG00(6), EPSTIM
  18. REAL*8 YOUN,XNU,EPSD0,ACOM,BCOM,ATRA,BTRA,BETA
  19. REAL*8 XZERO,UN,DEUX,XPETIT, DDHOOK(6,6)
  20. REAL*8 DINI,D,DT,DC,EPSTIL,ALFAT,ALFAC,GAMMA
  21. REAL*8 EPSILO(6), PREC
  22. INTEGER ISTRS,JSTRS,KCAS,IRTD
  23. CHARACTER CMATE
  24. PARAMETER (XZERO=0.D0 , UN=1.D0 , DEUX=2.D0, XPETIT=1.D-12)
  25.  
  26. CMATE = 'ISOTROPE'
  27. YOUN = XMAT(1)
  28. XNU = XMAT(2)
  29. EPSD0= XMAT(9)
  30. ACOM = XMAT(5)
  31. BCOM = XMAT(7)
  32. ATRA = XMAT(6)
  33. BTRA = XMAT(8)
  34. BETA = XMAT(20)
  35. DINI = VAR0(2)
  36.  
  37. C
  38. C calcul des seuils
  39. C
  40. C
  41. C calcul de la deformation élastique
  42. C
  43. * Calcul de la matrice elastique
  44. KCAS=2
  45. CALL DOHMAS(XMAT,'ISOTROPE',2,NSTRS,KCAS,DDHOOK,IRTD)
  46.  
  47. PREC=1.D-20
  48. CALL INVALM(DDHOOK,NSTRS,NSTRS,KERRE,PREC)
  49.  
  50. * Calcul de La partie élastique des déformations
  51. CALL MATVE1 (DDHOOK,SIG0,NSTRS,NSTRS,EPSILO,1)
  52.  
  53. * DO ISTRS = 1,NSTRS
  54. * EPSILO(ISTRS) = 1/(1-DINI)*EPSILO(ISTRS) + DEPST(ISTRS)
  55. * END DO
  56. C
  57. C calcul des deformations principales
  58. C
  59. C
  60. C on reecrit les deformations sous forme matricielle
  61. C
  62. CALL ENDOCB (EPSILO,EPS33,2,2)
  63. C
  64. C et on diagonalise
  65. C
  66. CALL JACOB3 (EPS33,3,EPSIPP,VALP33)
  67.  
  68.  
  69. IF (ISTEP .EQ. 0 .OR. ISTEP.EQ.2) THEN
  70. C
  71. C on calcule la matrice de hooke et les contraintes ppales
  72. C
  73. CMATE = 'ISOTROPE'
  74. KCAS=2
  75. CALL DOHMAS(XMAT,'ISOTROPE',2,NSTRS,KCAS,DDHOOK,IRTD)
  76. DO 200 ISTRS=1,3
  77. SIGP(ISTRS)= XZERO
  78. DO 210 JSTRS=1,3
  79. SIGP(ISTRS)=SIGP(ISTRS)+DDHOOK(ISTRS,JSTRS)*EPSIPP(JSTRS)
  80. 210 CONTINUE
  81. 200 CONTINUE
  82. END IF
  83.  
  84. C on calcule le epsilontild
  85. C
  86. EPSTIL=MAX( XZERO , EPSIPP(1) )**2 +
  87. 1 MAX( XZERO , EPSIPP(2) )**2 +
  88. 2 MAX( XZERO , EPSIPP(3) )**2
  89. EPSTIL=SQRT (EPSTIL)
  90.  
  91. IF (ISTEP .EQ. 0) THEN
  92. EPSTIM=EPSTIL
  93. VARF(1)=EPSTIL
  94. ELSE IF (ISTEP .EQ. 1) THEN
  95. VARF(9)=VAR0(9)
  96. VARF(3)=VAR0(3)
  97. VARF(4)=VAR0(4)
  98. VARF(5)=VAR0(5)
  99. VARF(6)=VAR0(6)
  100. VARF(7)=VAR0(7)
  101. VARF(8)=VAR0(8)
  102. VARF(2)=DINI
  103. VARF(1)=EPSTIL
  104. ELSE IF (ISTEP .EQ. 2) THEN
  105. EPSTIM=VAR0(1)
  106. VARF(1)=EPSTIM
  107. ELSE
  108. PRINT*,'DANS MAZARS ISTEP = 0,1,2 ET PAS ',ISTEP
  109. END IF
  110.  
  111. IF ( (ISTEP .EQ. 0) .OR. (ISTEP .EQ. 2)) THEN
  112. C
  113. C on calcule l'endommagement et les contraintes
  114. C
  115. C
  116. C on calcule ALFAT ALFAC DT et DC puis D
  117. C dans le cas ou le seuil initial est depasse
  118. C
  119. IF ( EPSTIM .GT. EPSD0) THEN
  120. C
  121. C calcul de l'endommagement
  122. C
  123. C
  124. C on calcule le signe des contraintes elastiques
  125. C
  126. DO 300 ISTRS=1,3
  127. IF (SIGP(ISTRS).LT. XZERO) THEN
  128. SIGPC(ISTRS)=SIGP(ISTRS)
  129. SIGPT(ISTRS)=XZERO
  130. ELSE
  131. SIGPT(ISTRS)=SIGP(ISTRS)
  132. SIGPC(ISTRS)=XZERO
  133. END IF
  134. 300 CONTINUE
  135. TRSIGT=SIGPT(1)+SIGPT(2)+SIGPT(3)
  136. TRSIGC=SIGPC(1)+SIGPC(2)+SIGPC(3)
  137. C
  138. C on calcule les deformations dues aux contraintes positives
  139. C
  140. DO 400 ISTRS=1,3
  141. EPSILT(ISTRS)=(SIGPT(ISTRS)*(UN+XNU)-TRSIGT*XNU)/YOUN
  142. 400 CONTINUE
  143. C
  144. C on en deduit ALFAT et ALFAC
  145. C
  146. ALFAT = MAX(XZERO,EPSIPP(1))*EPSILT(1) +
  147. 1 MAX(XZERO,EPSIPP(2))*EPSILT(2) +
  148. 2 MAX(XZERO,EPSIPP(3))*EPSILT(3)
  149. ALFAT = ALFAT/(EPSTIL*EPSTIL)
  150. ALFAC = UN - ALFAT
  151. C
  152. C modification pour la bi ou tricompression
  153. C
  154. * IF (TRSIGC.LT. -XPETIT .AND. TRSIGT.LT.XPETIT) THEN
  155. * GAMMA=SIGPC(1)*SIGPC(1)+SIGPC(2)*SIGPC(2)+
  156. * 1 SIGPC(3)*SIGPC(3)
  157. * GAMMA=-SQRT(GAMMA)/TRSIGC
  158. * EPSTIM=EPSTIM*GAMMA
  159. * END IF
  160. C
  161. C amelioration de la reponse en cisaillement pour beta > 1.
  162. C
  163. IF (BETA .GT. UN) THEN
  164. IF ( ALFAT .GT. XPETIT ) THEN
  165. ALFAT=ALFAT**BETA
  166. END IF
  167. IF ( ALFAC .GT. XPETIT ) THEN
  168. ALFAC=ALFAC**BETA
  169. END IF
  170. END IF
  171.  
  172. C
  173. C on calcule DT et DC puis D
  174. C dans le cas ou le seuil initial est depasse
  175. C
  176. C on est oblige de verifier car on a pu multiplier par gamma
  177. C
  178. IF (EPSTIM .GT. EPSD0) THEN
  179. DT=UN - EPSD0*(UN-ATRA)/EPSTIM -
  180. 1 ATRA*EXP(-BTRA*(EPSTIM-EPSD0))
  181. DC=UN - EPSD0*(UN-ACOM)/EPSTIM -
  182. 1 ACOM*EXP(-BCOM*(EPSTIM-EPSD0))
  183. ELSE
  184. DT=XZERO
  185. DC=XZERO
  186. END IF
  187. D = ALFAT*DT + ALFAC*DC
  188. C
  189. C on borne la valeur de D a 0.99999
  190. C
  191. D=MIN ( D , UN-1.D-05 )
  192. ELSE
  193. D=XZERO
  194. END IF
  195. C
  196. C on teste la croissance de D
  197. C
  198. D=MAX ( D , DINI )
  199. C
  200. C on le stocke dans les variables internes finales
  201. C
  202. VARF(2)= D
  203. C
  204. C on calcule les contraintes finales
  205. C
  206. DO 500 ISTRS=1,NSTRS
  207. SIGF(ISTRS)=SIG0(ISTRS)*(UN-D)
  208. 500 CONTINUE
  209.  
  210. * Et on stocke la différence entre contraintes réelles et contraintes plastiques
  211.  
  212. DO ISTRS=1,NSTRS
  213. VARF(ISTRS+2) = SIG0(ISTRS)-SIGF(ISTRS)
  214. END DO
  215.  
  216. END IF
  217.  
  218. RETURN
  219. END
  220.  
  221.  
  222.  

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