Télécharger damstc.eso

Retour à la liste

Numérotation des lignes :

  1. C DAMSTC SOURCE CB215821 17/07/21 21:15:06 9513
  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)
  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)
  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. c
  89. DO ISTR1 = 1, NSTR1
  90. STRIA (ISTR1) = SGEFF (ISTR1) + DSIGT (ISTR1)
  91. SGEFF (ISTR1) = STRIA (ISTR1)
  92. END DO
  93. c
  94. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  95. . BETAM, SGEFF, SGTEN, SGCOM)
  96. C=====----------------------------------------------------------------
  97. C == COMPRESSION == |
  98. C=====----------------------------------------------------------------
  99. C CONTROL OF POSSIBLE NO-EXISTENCE OF DAMAGE AND PLASTICITY |
  100. C=====----------------------------------------------------------------
  101. IF (NCOMP .GT. 0) THEN
  102. c
  103. CALL EQUIST (SGCOM, TANGB, YOUNG, -1, EQUIC)
  104. ELSE
  105. EQUIC = 0.0 D0
  106. GO TO 2002
  107. END IF
  108. C=====----------------------------------------------------------------
  109. C CONTROL IF PLASTICITY IS DESIRED |
  110. C=====----------------------------------------------------------------
  111. C
  112. c
  113. IF (BPCOM .EQ. 0.0 D0) GO TO 2002
  114. IF (EQUIC .LE. THREC) GO TO 2002
  115. C
  116. C=====----------------------------------------------------------------
  117. C CONTROL OF POWER CONDITION |
  118. C=====----------------------------------------------------------------
  119. POWER = 0.0 D0
  120. EUTRI = 0.0 D0
  121. DO ISTR1 = 1, NSTR1
  122. PROV1 = STRIA (ISTR1)
  123. POWER = POWER + PROV1 * DSTRA (ISTR1)
  124. EUTRI = EUTRI + PROV1**2
  125. END DO
  126. C
  127. EUTRI = SQRT (EUTRI)
  128. C
  129. IF (POWER .LE. 0.0 D0) GO TO 2002
  130. C=====----------------------------------------------------------------
  131. C POSSIBLE UPDATING OF EFFECTIVE STRESSES (PLASTIC EVOLUTION) |
  132. C=====----------------------------------------------------------------
  133. PROV1 = 1.0 D0 - BPCOM * POWER / EUTRI**2
  134. C
  135. IF (PROV1 .LT. 0.0 D0) THEN
  136. PROV1 = 1.0 D0
  137. END IF
  138. C
  139. DO ISTR1 = 1, NSTR1
  140. SGEFF (ISTR1) = STRIA (ISTR1) * PROV1
  141. END DO
  142. C
  143. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  144. . BETAM, SGEFF, SGTEN, SGCOM)
  145. C
  146. IF (NCOMP .GT. 0) THEN
  147. CALL EQUIST (SGCOM, TANGB, YOUNG, -1, EQUIC)
  148. C
  149. IF (EQUIC .LT. THREC) THEN
  150. DO ISTR1 = 1, NSTR1
  151. SGEFF (ISTR1) = STRIA (ISTR1)
  152. END DO
  153. C
  154. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  155. . BETAM, SGEFF, SGTEN, SGCOM)
  156. CALL EQUIST (SGCOM, TANGB, YOUNG, -1, EQUIC)
  157. C
  158. END IF
  159. GO TO 2002
  160. ELSE
  161. DO ISTR1 = 1, NSTR1
  162. SGEFF (ISTR1) = STRIA (ISTR1)
  163. END DO
  164. C
  165. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  166. . BETAM, SGEFF, SGTEN, SGCOM)
  167. C
  168. EQUIC = 0.0 D0
  169. GO TO 2002
  170. END IF
  171. C
  172. 2002 CONTINUE
  173. C
  174. C=====----------------------------------------------------------------
  175. C CHECKING FOR DAMAGE AND UPDATING OF INTERNAL VARIABLES |
  176. C=====----------------------------------------------------------------
  177. C
  178. IF (EQUIC .GE. THREC) THREC = EQUIC
  179. C
  180. DAMAC = 1.0 D0 - THR0C / THREC * (1.0 D0 - AVALC) -
  181. . AVALC * EXP (BVALC*(THR0C-THREC))
  182. C
  183. IF (DAMAC .GT. 1.0 D0) DAMAC = 1.0 D0
  184. IF (DAMAC .LT. 0.0 D0) DAMAC = 0.0 D0
  185. C
  186. C=====----------------------------------------------------------------
  187. C == TENSION == |
  188. C=====----------------------------------------------------------------
  189. IF (NTENS .GT. 0) THEN
  190. CALL EQUIST (SGTEN, TANGB, YOUNG, +1, EQUIT)
  191. ELSE
  192. EQUIT = 0.0 D0
  193. END IF
  194. C=====----------------------------------------------------------------
  195. C CHECKING FOR DAMAGE AND UPDATING OF INTERNAL VARIABLES |
  196. C=====----------------------------------------------------------------
  197. C
  198. IF (EQUIT .GE. THRET) THRET = EQUIT
  199. C
  200. IF (NCRIT .EQ. 1) THEN
  201. PROV1 = THR0T / THRET
  202. DAMAT = 1.0 D0 - PROV1 * EXP (AVALT*(1.0D0-1.0D0/PROV1))
  203. END IF
  204. IF (NCRIT .EQ. 2) THEN
  205. DAMAT = 1.0 D0 - AVALT / THRET + BVALT
  206. END IF
  207. C
  208. IF (DAMAT .GT. 1.0 D0) DAMAT = 1.0 D0
  209. IF (DAMAT .LT. 0.0 D0) DAMAT = 0.0 D0
  210. C=====----------------------------------------------------------------
  211. C ROTATION OF POSITIVE EFFECTIVE STRESS TENSOR, FROM EIGEN TO |
  212. C GLOBAL SYSTEM |
  213. C=====----------------------------------------------------------------
  214. CALL EIGGLO (NDIME, NSTR1, NTENS,
  215. . BETAM, PROSI, SGTEN, SOXYZ)
  216. C=====----------------------------------------------------------------
  217. C NEGATIVE EFFECTIVE STRESS TENSOR |
  218. C=====----------------------------------------------------------------
  219. DO ISTR1 = 1, NSTR1
  220. SGCOM (ISTR1) = SGEFF (ISTR1) - SGTEN (ISTR1)
  221. END DO
  222. C=====----------------------------------------------------------------
  223. C COMPUTE CAUCHY STRESSES ACCORDING TO DAMAGE AND PLASTICITY |
  224. C=====----------------------------------------------------------------
  225. REDTE = 1.0 D0 - DAMAT
  226. REDCO = 1.0 D0 - DAMAC
  227. C
  228. eps1=0.d0
  229. eps2=0.d0
  230. DO ISTR1 = 1, NSTR1
  231. SGTOT (ISTR1) = REDTE * SGTEN (ISTR1) + REDCO * SGCOM (ISTR1)
  232. eps1=eps1+(SGTOT(ISTR1)-STRIA(ISTR1))**2
  233. eps2=eps2+SGTOT(ISTR1)**2
  234. END DO
  235.  
  236. C
  237. RETURN
  238. END
  239.  
  240.  
  241.  

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