Télécharger damstc.eso

Retour à la liste

Numérotation des lignes :

damstc
  1. C DAMSTC SOURCE AM 19/07/24 21:15:07 10269
  2. C---------------------------------------------------------------------
  3. C
  4. C
  5. SUBROUTINE DAMSTC (ISTEG, ITERA,
  6. . NCRIT, NDIME, NDIM1, NSTRE, NSTR1, NTEMP,
  7. . AVALC, AVALT, BPCOM, BVALC, BVALT,
  8. . DAMAC, DAMAT, DMATX, DSTRA, DSIGT, EBOU1,
  9. . EQUIC, EQUIT,
  10. . POISS, SGEFF, SGTOT, STRIN, TANGB,
  11. . THREC, THRET, THRUC, THR0C, THR0T, YOUNG,
  12. . STYPE, DAMAT0, DAMAC0)
  13. C
  14. C=====================================================================
  15. C =
  16. C THIS SUBROUTINE DETERMINES IF THE GAUSS POINT IS DAMAGED OR =
  17. C PLASTIFIED. RATE EFFECTS ARE ALSO TAKEN INTO ACCOUNT. =
  18. C =
  19. C NCRIT = 1 DAMAGE MODEL (TENSION (EXPONENTIAL), DT =
  20. C COMPRESSION , DC) =
  21. C =
  22. C NCRIT = 2 DAMAGE MODEL (TENSION (LINEAR), DT =
  23. C COMPRESSION , DC) =
  24. C VARIABLES: =
  25. C =
  26. C DMATX ELASTIC CONSTITUTIVE MATRIX =
  27. C DSTRA DIFFERENTIAL STRAIN =
  28. C BETAM ROTATION MATRIX =
  29. C PROSI & SOXYZ AUXILIAR MATRICES FOR ROTATION =
  30. C STRIN INITIAL STRESSES (TEMPERATURE) =
  31. C =
  32. C - TENSION - =
  33. C EQUIT CURRENT EQUIVALENT STRAIN =
  34. C DAMAT DAMAGE INTERNAL VARIABLE =
  35. C THRET THRESHOLD FOR DAMAGE =
  36. C AVALT PARAMETER AT (LINEAR + EXPON.) =
  37. C BVALT PARAMETER BT (LINEAR) =
  38. C SGTEN POSITIVE STRESSES =
  39. C =
  40. C - COMPRESSION - =
  41. C EQUIC CURRENT EQUIVALENT STRAIN =
  42. C DAMAC DAMAGE INTERNAL VARIABLE =
  43. C THREC THRESHOLD FOR DAMAGE =
  44. C AVALC PARAMETER AC =
  45. C BVALC " BC =
  46. C SGCOM NEGATIVE STRESSES =
  47. C =
  48. C SGEFF EFFECTIVE STRESS=DO:E-SOP =
  49. C SGTOT FINAL CAUCHY STRESSES =
  50. C =
  51. C ALL STRESSES ACCORDING TO: =
  52. C =
  53. C STRES = (SXX, SYY, SZZ, SXY, SXZ, SYZ) NSTRE=6 =
  54. C STRES = (SRR, SZZ, SRZ, S00) NSTRE=4 =
  55. C STRES = (SXX, SYY, SZZ, SXY) NSTRE=3 =
  56. C =
  57. C AUTHOR: RUI FARIA VERSION: 96.09.14 =
  58. C -------- =
  59. C=====================================================================
  60. C
  61. IMPLICIT INTEGER(I-N)
  62. IMPLICIT real*8 (a-h,o-z)
  63. INTEGER ISTEG, ITERA, NTEMP
  64. INTEGER NCRIT, NDIME, NDIM1, NSTRE, NSTR1
  65. REAL*8 AVALC, AVALT, BPCOM, BVALT, BVALC, DAMAC,
  66. . DAMAT, EBOU1, EQUIC, EQUIT,
  67. . GVALC,
  68. . HVALC, POISS, STRIN, TANGB, THREC, THRET,
  69. . THRUC, THR0C, THR0T, YOUNG, DSIGT(NSTR1),
  70. . DSTRA (NSTR1), SGEFF (NSTR1), SGTOT (NSTR1),
  71. . DMATX (NSTRE,NSTRE), DAMAT0, DAMAC0
  72. C
  73. INTEGER ISTR1, NTENS, NCOMP
  74. REAL*8 EUTRI, POWER, PROV1,
  75. . REDTE, REDCO,
  76. . SGCOM (6), SGTEN (6), STRIA (6),
  77. . BETAM (3,3), PROSI (3,3), SOXYZ (3,3)
  78. C
  79. CHARACTER*6 STYPE
  80. C
  81. C
  82. C=====----------------------------------------------------------------
  83. C NEW TRIAL STRESS TENSOR |
  84. C=====----------------------------------------------------------------
  85. C
  86. CALL MATVE1 (DMATX,DSTRA,NSTR1,NSTR1,DSIGT,1)
  87. c
  88. DO ISTR1 = 1, NSTR1
  89. STRIA (ISTR1) = SGEFF (ISTR1) + DSIGT (ISTR1)
  90. SGEFF (ISTR1) = STRIA (ISTR1)
  91. END DO
  92. c
  93. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  94. . BETAM, SGEFF, SGTEN, SGCOM)
  95.  
  96.  
  97. C=====----------------------------------------------------------------
  98. C == COMPRESSION == |
  99. C=====----------------------------------------------------------------
  100. C CONTROL OF POSSIBLE NO-EXISTENCE OF DAMAGE AND PLASTICITY |
  101. C=====----------------------------------------------------------------
  102. IF (NCOMP .GT. 0) THEN
  103. c
  104. CALL EQUIST (SGCOM, TANGB, YOUNG, -1, EQUIC)
  105. ELSE
  106. EQUIC = 0.0 D0
  107. GO TO 2002
  108. END IF
  109. C=====----------------------------------------------------------------
  110. C CONTROL IF PLASTICITY IS DESIRED |
  111. C=====----------------------------------------------------------------
  112. C
  113. c
  114. IF (BPCOM .EQ. 0.0 D0) GO TO 2002
  115. IF (EQUIC .LE. THREC) GO TO 2002
  116. C
  117. C=====----------------------------------------------------------------
  118. C CONTROL OF POWER CONDITION |
  119. C=====----------------------------------------------------------------
  120. POWER = 0.0 D0
  121. EUTRI = 0.0 D0
  122. DO ISTR1 = 1, NSTR1
  123. PROV1 = STRIA (ISTR1)
  124. POWER = POWER + PROV1 * DSTRA (ISTR1)
  125. EUTRI = EUTRI + PROV1**2
  126. END DO
  127. C
  128. EUTRI = SQRT (EUTRI)
  129. C
  130. IF (POWER .LE. 0.0 D0) GO TO 2002
  131. C=====----------------------------------------------------------------
  132. C POSSIBLE UPDATING OF EFFECTIVE STRESSES (PLASTIC EVOLUTION) |
  133. C=====----------------------------------------------------------------
  134. PROV1 = 1.0 D0 - BPCOM * POWER / EUTRI**2
  135. C
  136. IF (PROV1 .LT. 0.0 D0) THEN
  137. PROV1 = 1.0 D0
  138. END IF
  139. C
  140. DO ISTR1 = 1, NSTR1
  141. SGEFF (ISTR1) = STRIA (ISTR1) * PROV1
  142. END DO
  143. C
  144. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  145. . BETAM, SGEFF, SGTEN, SGCOM)
  146. C
  147. IF (NCOMP .GT. 0) THEN
  148. CALL EQUIST (SGCOM, TANGB, YOUNG, -1, EQUIC)
  149. C
  150. IF (EQUIC .LT. THREC) THEN
  151. DO ISTR1 = 1, NSTR1
  152. SGEFF (ISTR1) = STRIA (ISTR1)
  153. END DO
  154. C
  155. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  156. . BETAM, SGEFF, SGTEN, SGCOM)
  157. CALL EQUIST (SGCOM, TANGB, YOUNG, -1, EQUIC)
  158. C
  159. END IF
  160. GO TO 2002
  161. ELSE
  162. DO ISTR1 = 1, NSTR1
  163. SGEFF (ISTR1) = STRIA (ISTR1)
  164. END DO
  165. C
  166. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  167. . BETAM, SGEFF, SGTEN, SGCOM)
  168. C
  169. EQUIC = 0.0 D0
  170. GO TO 2002
  171. END IF
  172. C
  173. 2002 CONTINUE
  174. C
  175. C=====----------------------------------------------------------------
  176. C CHECKING FOR DAMAGE AND UPDATING OF INTERNAL VARIABLES |
  177. C=====----------------------------------------------------------------
  178. C
  179.  
  180. IF (EQUIC .GE. THREC) THREC = EQUIC
  181. C
  182. DAMAC = 1.0 D0 - THR0C / THREC * (1.0 D0 - AVALC) -
  183. . AVALC * EXP (BVALC*(THR0C-THREC))
  184.  
  185. DAMAC = MAX(DAMAC, DAMAC0)
  186. C
  187. IF (DAMAC .GT. 1.0 D0) DAMAC = 1.0 D0
  188. IF (DAMAC .LT. 0.0 D0) DAMAC = 0.0 D0
  189.  
  190. C
  191. C=====----------------------------------------------------------------
  192. C == TENSION == |
  193. C=====----------------------------------------------------------------
  194. IF (NTENS .GT. 0) THEN
  195. CALL EQUIST (SGTEN, TANGB, YOUNG, +1, EQUIT)
  196. ELSE
  197. EQUIT = 0.0 D0
  198. END IF
  199. C=====----------------------------------------------------------------
  200. C CHECKING FOR DAMAGE AND UPDATING OF INTERNAL VARIABLES |
  201. C=====----------------------------------------------------------------
  202. C
  203. IF (EQUIT .GE. THRET) THRET = EQUIT
  204.  
  205. C
  206. IF (NCRIT .EQ. 1) THEN
  207. PROV1 = THR0T / THRET
  208. DAMAT = 1.0 D0 - PROV1 * EXP (AVALT*(1.0D0-1.0D0/PROV1))
  209. END IF
  210. IF (NCRIT .EQ. 2) THEN
  211. DAMAT = 1.0 D0 - AVALT / THRET + BVALT
  212. END IF
  213. C
  214.  
  215. DAMAT = MAX(DAMAT, DAMAT0)
  216.  
  217. IF (DAMAT .GT. 1.0 D0) DAMAT = 1.0 D0
  218. IF (DAMAT .LT. 0.0 D0) DAMAT = 0.0 D0
  219.  
  220. C=====----------------------------------------------------------------
  221. C ROTATION OF POSITIVE EFFECTIVE STRESS TENSOR, FROM EIGEN TO |
  222. C GLOBAL SYSTEM |
  223. C=====----------------------------------------------------------------
  224. CALL EIGGLO (NDIME, NSTR1, NTENS,
  225. . BETAM, PROSI, SGTEN, SOXYZ)
  226. C=====----------------------------------------------------------------
  227. C NEGATIVE EFFECTIVE STRESS TENSOR |
  228. C=====----------------------------------------------------------------
  229. DO ISTR1 = 1, NSTR1
  230. SGCOM (ISTR1) = SGEFF (ISTR1) - SGTEN (ISTR1)
  231. END DO
  232. C=====----------------------------------------------------------------
  233. C COMPUTE CAUCHY STRESSES ACCORDING TO DAMAGE AND PLASTICITY |
  234. C=====----------------------------------------------------------------
  235. REDTE = 1.0 D0 - DAMAT
  236. REDCO = 1.0 D0 - DAMAC
  237. C
  238. eps1=0.d0
  239. eps2=0.d0
  240. DO ISTR1 = 1, NSTR1
  241. SGTOT (ISTR1) = REDTE * SGTEN (ISTR1) + REDCO * SGCOM (ISTR1)
  242. eps1=eps1+(SGTOT(ISTR1)-STRIA(ISTR1))**2
  243. eps2=eps2+SGTOT(ISTR1)**2
  244. END DO
  245.  
  246. C
  247. RETURN
  248. END
  249.  
  250.  
  251.  
  252.  

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